【发布时间】:2017-06-23 08:50:27
【问题描述】:
我想使用 JavaScript 编写一个脚本来创建一个哈希字符串,但是这个字符串应该使用我的服务器端程序员在他的代码中使用的一些公式,
用于解码的 C# 代码是:
private string Decrypt(string cipherText)
{
string EncryptionKey = "MAKV2SPBNI99212";
byte[] cipherBytes = Convert.FromBase64String(cipherText);
using (Aes encryptor = Aes.Create())
{
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
encryptor.Key = pdb.GetBytes(32);
encryptor.IV = pdb.GetBytes(16);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(cipherBytes, 0, cipherBytes.Length);
cs.Close();
}
cipherText = Encoding.Unicode.GetString(ms.ToArray());
}
}
return cipherText;
}
我不知道如何在 JavaScript 中加密/解密字符串。 如何编写脚本来加密 javascript 中的字符串?
更新:
我找到了CryptoJS 并使用了这段代码:
var ID = 12345;
var ciphertext = Crypto.AES.encrypt(ID, 'MAKV2SPBNI99212');
但是c#Decrypt方法不能接受散列字符串。
【问题讨论】:
-
使用 Ajax 将字符串从 JavaScript 发送到 C# 服务器后端并取回加密字符串。
-
@lleaff 谢谢,我之前发现了这个问题,但那个解决方案对我不起作用:(
-
顺便说一句:哈希不能被“解密”。
-
@UweKeim 感谢您的解决方案,我们不想解密字符串,我们有一个 ID,所以我们希望没有人能猜到这个,所以我们想要散列这个 ID,然后传递给服务器
标签: javascript c# encryption hash