在节点上生成AES密钥

时间:2014-01-26 19:09:50

标签: java node.js cryptography aes

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

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

我一直在crypto寻找解决方案而没有运气。如何在nodejs上生成此密钥?

1 个答案:

答案 0 :(得分:1)

该代码可能没有你想象的那么多。它只生成16(128/8)个安全随机字节,然后围绕它包装一个关键对象。因此,对于nodejs,您只需生成16个字节并将算法输入原始密钥数据。

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

有关信息,请参阅randomBytes()createCipheriv()

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