显然,如果您将密码传递给
crypto.createCipher()它,则使用OpenSSL
EVP_BytesToKey()派生密钥。您可以传递一个原始字节缓冲区并使用它来初始化Java的
SecretKey,也可以
EVP_BytesToKey()在Java代码中进行仿真。使用
$man EVP_BytesToKey可获得更多详细信息,但本质上它会用MD5多次散列密码短语并连接一个盐。
至于使用原始密钥,类似这样的方法应该可以让您使用原始密钥:
var c = crypto.createCipheriv("aes-128-ecb", newBuffer("00010203050607080a0b0c0d0f101112", "hex").toString("binary"), "");请注意,由于您使用的是CBC,因此需要使用相同的IV进行加密和解密(您可能希望将其附加到消息中,等等)。
强制性警告:自己实施加密协议很少是个好主意。即使您可以使用此功能,您是否也将对所有消息使用相同的密钥?多长时间?如果决定旋转钥匙,该如何管理。等等



