我正在处理一个使用自定义协议(protocol)来加密通信的遗留应用程序。随机 AES key 在遗留 Java 应用程序中生成,如下所示:
keygen = KeyGenerator.getInstance("AES");
keygen.init(128);
keygen.generateKey().getEncoded();
我一直在 crypto 上寻找解决方案没有运气。我如何在 nodejs 上生成这个 key ?
最佳答案
该代码可能没有您想象的那么多。它只是生成 16 (128/8) 个安全随机字节,然后将一个 key 对象包裹在它周围。因此,对于 nodejs,您只需生成 16 个字节并将原始 key 数据提供给算法。
如果要使用生成的 key ,请确保从 getEncoded()
方法返回的字节创建二进制编码字符串或缓冲区。如果您需要 key 是过程中某处的文本字符串,则可以使用十六进制编码/解码。
参见 randomBytes()
和 createCipheriv()
以供引用。
AES key 只是加密强度高的随机字节,DES(奇偶校验位)和 RSA(素数计算) key 不是。
关于java - 在 Node 上生成 AES key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21367907/