节点.js RSA 加密/解密

node.js rsa encryption/decryption

本文关键字:解密 加密 RSA js 节点      更新时间:2023-09-26

我有以下 C# 代码:

// incoming data - MemoryStream memoryStream
RSACryptoServiceProvider cryptoServiceProvider1 = new RSACryptoServiceProvider();
cryptoServiceProvider1.FromXmlString("<RSAKeyValue><Modulus>...</Modulus><Exponent>AQAB</Exponent><P>...</P><Q>...</Q><DP>...</DP><DQ>...</DQ><InverseQ>...</InverseQ><D>...</D></RSAKeyValue>");
cryptoServiceProvider1.PersistKeyInCsp = true;
RijndaelManaged rijndaelManaged = new RijndaelManaged();
rijndaelManaged.KeySize = 256;
rijndaelManaged.BlockSize = 128;
rijndaelManaged.Mode = CipherMode.CBC;
byte[] numArray3 = new byte[128];
byte[] numArray4 = new byte[16];
// numArray3 & numArray4 - filled with come data;
byte[] rgbKey = cryptoServiceProvider1.Decrypt(numArray3, false);
ICryptoTransform decryptor = rijndaelManaged.CreateDecryptor(rgbKey, numArray4);
CryptoStream cryptoStream = new CryptoStream((Stream) memoryStream, decryptor, CryptoStreamMode.Write);

问:是否可以将此功能迁移到 Node.js (JavaScript)?

我很确定这个节点模块将能够做你想做的事情。

这个节点模块为OpenSSL的RSA公钥/私钥加密功能提供了一组相当完整的包装器。

请查看此答案,了解将 XML 密钥转换为 Node 模块可以使用的标准 PEM 密钥的可能方法。