C# 从c调用javascript函数(带参数)#

C# 从c调用javascript函数(带参数)#,c#,javascript,hash,C#,Javascript,Hash,我有一个WCF服务,我想传递一个SHA1哈希字符串作为结果 在客户端,我有一个简单的带有javascript的html页面 我有在javascript中生成SHA1字符串的代码,我想将其用于客户端(消息的散列)和服务器(消息的散列) 服务器在C#中 那么,是否可以从C#调用SHA1 javascript函数?您可以在HTML页面上放置一个隐藏控件,并将哈希值放在该控件中,然后从C#访问该控件。否!但您可以将SHA1结果放入输入并将其发布到服务器。这没有意义,原因有两个: 1) 您无法在C#和JS

我有一个WCF服务,我想传递一个SHA1哈希字符串作为结果

在客户端,我有一个简单的带有javascript的html页面

我有在javascript中生成SHA1字符串的代码,我想将其用于客户端(消息的散列)和服务器(消息的散列)

服务器在C#中


那么,是否可以从C#调用SHA1 javascript函数?

您可以在HTML页面上放置一个隐藏控件,并将哈希值放在该控件中,然后从C#访问该控件。

否!但您可以将SHA1结果放入输入并将其发布到服务器。

这没有意义,原因有两个:

1) 您无法在C#和JS之间真正共享代码,这些语言是为完全不同的目的创建的,并且不可互操作,除非您愿意允许代码生成混乱(如ASP.NETWeb表单)。尽管如此,从长远来看,这看起来像是一种伤害


2) SHA1是一种单向算法,无法对已编码字符串进行去散列(这里不讨论)。您使用的工具不正确。

没有“去灰化”消息这回事。散列的全部要点在于它本质上是单向的。
dehash消息
????散列函数是单向的。散列函数的全部目的是为给定的输入和给定的散列拥有唯一的散列,您永远无法获得用于生成此散列的输入。此外,为什么要在服务器上调用JS函数。Net已经有了一个完美的SHA1算法的实现。你很好。谢谢1) 不一定是真的,……但我同意在这种情况下这不是一个好主意。@Jonas,但您不能在浏览器中执行JScript.NET,因此我们仍然存在互操作性问题,但现在JS和JScript.NET之间存在互操作性问题。(当然,除了JScript.NET从一开始就已经死了这一事实之外。)