我正在开发一个网络应用程序,我需要在 javascript 中加密字符串以与来自服务器(.net C#)的加密字符串进行比较。
我需要这样做,将客户端中的加密字符串与 javascript 进行比较。
如何以相同的方式加密客户端和服务器中的字符串并获得相同的加密字符串?
我正在开发一个网络应用程序,我需要在 javascript 中加密字符串以与来自服务器(.net C#)的加密字符串进行比较。
我需要这样做,将客户端中的加密字符串与 javascript 进行比较。
如何以相同的方式加密客户端和服务器中的字符串并获得相同的加密字符串?
首先,由于客户端 Javascript 需要访问加密功能,但可能不需要解密功能(否则为什么要加密?),您需要使用非对称加密算法。类似 RSA 的东西。或者,您可以使用加密哈希,这是一种单向函数。如果您向我们提供有关您要实现的目标的一些上下文可能会有所帮助,但从目前的描述来看,我建议您寻找哈希算法的实现,例如 JavaScript 中的 SHA-2 系列之一 - System.Cryptography 命名空间C# 已经有了这些。
如果您正在实施某种安全客户端,请注意。例如,如果您尝试将密码哈希与服务器上的内容进行比较,并且在客户端进行比较,则恶意用户可以简单地附加调试器并绕过您的逻辑......
我会使用 Ajax 并从服务器端使用 RSA encrpytion,这样您就可以为两者使用相同的代码。
但是,如果你想要真正的 javascript RSA 加密,你可以使用这个库:
Cryptico.js
对于服务器端 C# 代码,您可以查看此站点:
C# RSA Example