我正在处理使用自定义协议加密通信的遗留应用程序。在遗留Java应用程序中生成随机AES密钥,如下所示:
keygen = KeyGenerator.getInstance("AES");
keygen.init(128);
keygen.generateKey().getEncoded();
我一直在crypto寻找解决方案而没有运气。如何在nodejs上生成此密钥?
答案 0 :(得分:1)
该代码可能没有你想象的那么多。它只生成16(128/8)个安全随机字节,然后围绕它包装一个关键对象。因此,对于nodejs,您只需生成16个字节并将算法输入原始密钥数据。
如果要使用生成的密钥,请确保根据getEncoded()
方法返回的字节创建二进制编码的字符串或缓冲区。如果您需要在过程中的某个位置使用密钥作为文本字符串,则可以使用十六进制编码/解码。
有关信息,请参阅randomBytes()
和createCipheriv()
。
AES密钥只是加密强随机字节,DES(奇偶校验位)和RSA(素数计算)密钥不是。