【发布时间】:2013-06-22 19:03:43
【问题描述】:
我正在尝试在 Mono C# 中加密一些数据,将其发送到 NodeJS 服务器并在那里解密。我正在尝试找出使用什么算法来匹配这两者。
我发送用 base64 编码的加密字符串。所以我在 Javascript 中做了类似的事情,我知道用于加密 C# 应用程序中数据的密钥:
var decipher = crypto.createDecipher('aes192',binkey, biniv);
var dec = decipher.update(crypted,'base64','utf8');
dec += decipher.final('utf8');
console.log("dec", dec);
在 Mono 中,我创建了我的 Cypher:
using System.Security.Cryptography;
using (Aes aesAlg = Aes.Create("aes192"))
我需要将正确的字符串传递给 Aes.Create() 以便让它使用相同的算法,但我找不到它应该是什么。 “aes192”似乎不正确。
我不需要 aes192 这只是一个试用。如果有意义,建议使用不同的加密方式。安全性不是什么大问题。
以下是 .NET 和 Nodejs 文档的链接: http://msdn.microsoft.com/en-us/library/system.security.cryptography.aes.aspx http://nodejs.org/api/crypto.html
【问题讨论】:
-
你在什么样的情况下保护什么?我认为在这种情况下使用 TLS 可能会更好。
-
因为您的问题似乎是 .net,而不是 js。在 c#stackoverflow.com/a/10366194/637783 中从 AES 然后 HMac 或 AES-GCM 开始,然后计算出你的 JS。
-
@ntoskrnl 我将其用于质询响应模式以激活许可证。
-
@jbtule 在 c# 中的加密/解密对于引用的示例代码很好。所以我已经有了一个加密字符串,只是在Node.js端无法解密。
标签: c# .net node.js cryptography aes