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