c# - 解密用 C# 加密的 Node.js 中的文本
问题描述
我有一些在 C#/.NET 中加密的文本,我想在 Node.js 中解密。我的解密代码在 C# 中工作得非常好,但我无法在 Node.js 中找到解密相同加密文本的代码。下面提到的是.NET中用于解密的代码
public static string Decrypt(string encodedText, string key)
{
TripleDESCryptoServiceProvider desCryptoProvider = new TripleDESCryptoServiceProvider();
byte[] byteBuff;
try
{
byteBuff = Convert.FromBase64String(encodedText);
desCryptoProvider.Key = UTF8Encoding.UTF8.GetBytes(key);
desCryptoProvider.Mode = CipherMode.ECB;
desCryptoProvider.Padding = PaddingMode.PKCS7;
string plaintext = Encoding.UTF8.GetString(desCryptoProvider.CreateDecryptor().TransformFinalBlock(byteBuff, 0, byteBuff.Length));
return plaintext;
}
catch (Exception except)
{
Console.WriteLine(except + "\n\n" + except.StackTrace);
return null;
}
}
Node.js 内置库加密对我没有太大帮助,因为它错误地显示了加密文本。当我使用 npm 中的“Crypto-JS”包时,它没有出错,但是,它也没有给出任何输出。下面是等效的 Node.js
function decrypt(input, key) {
var key = CryptoJS.enc.Utf8.parse(key);
var iv = CryptoJS.enc.Base64.parse('QUJDREVGR0g=');
var options = {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
};
var bytes = CryptoJS.TripleDES.decrypt(input, key, options);
console.log('key:' + key);
var decryptedText = bytes.toString(CryptoJS.enc.Utf8);
console.log('DecryptedText:' + decryptedText);
return decryptedText;
}
如何找出与上述代码等效的 Node.js?
解决方案
推荐阅读
- node.js - 如何在反应应用程序中监听 JWT 令牌过期?
- math - 圆段上任意点的高度
- c# - 如何将列添加到 DataGrid?
- python - 遍历字典并将字典中的每个数据帧保存为csv?
- testing - 如何使类星体工具提示出现在 Jest 中?
- airflow - Dag 依赖插件:错误:无法从“气流”导入名称“conf”
- python - 找到生命线危险函数的局部最大值
- firebase - Firebase:npm install -g firebase-tools 失败
- java - 如果实体是@Cached/@Cacheable,EntityManager.getReference() 是否重要?
- ribbon - 是否有基于 Zuul Ribbon 和 Eureka 的 canary 部署的稳定且广泛使用的组件?