在节点上生成 AES 密钥

2024-05-06

我正在处理一个使用自定义协议来加密通信的遗留应用程序。随机 AES 密钥在旧版 Java 应用程序中生成,如下所示:

keygen = KeyGenerator.getInstance("AES");
keygen.init(128);
keygen.generateKey().getEncoded();

我一直在寻找解决方案crypto http://nodejs.org/api/crypto.html没有运气。如何在nodejs上生成这个密钥?


该代码可能没有您想象的那么多。它只是生成 16 (128 / 8) 个安全随机字节,然后将密钥对象包装在其周围。因此,使用 Nodejs,您只需生成 16 个字节并向算法提供原始密钥数据即可。

如果您想使用生成的密钥,请确保根据返回的字节创建二进制编码的字符串或缓冲区getEncoded()方法。如果您需要密钥是过程中某处的文本字符串,则可以使用十六进制编码/解码。

See randomBytes() http://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback and createCipheriv() http://nodejs.org/api/crypto.html#crypto_crypto_createcipheriv_algorithm_key_iv供参考。

AES 密钥只是加密上的强随机字节,DES(奇偶校验位)和 RSA(素数计算)密钥则不是。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在节点上生成 AES 密钥 的相关文章

随机推荐