Javascript Node.js-加密
我正在为node.js项目集成一个支付网关。他们有python的集成工具包,我在这方面没有太多经验。我将它们的变化从python移植到javascript。这是正确的吗 Python代码:Javascript Node.js-加密,javascript,node.js,Javascript,Node.js,我正在为node.js项目集成一个支付网关。他们有python的集成工具包,我在这方面没有太多经验。我将它们的变化从python移植到javascript。这是正确的吗 Python代码: def encrypt(plainText,workingKey): iv = 'hello' encDigest = md5.new () encDigest.update(workingKey) enc_cipher = AES.new(en
def encrypt(plainText,workingKey):
iv = 'hello'
encDigest = md5.new ()
encDigest.update(workingKey)
enc_cipher = AES.new(encDigest.digest(), AES.MODE_CBC, iv)
encryptedText = enc_cipher.encrypt(plainText).encode('hex')
return encryptedText
function encrypt(plainText, workingKey){
var iv = 'hello';
var encDigest = crypto.createHash('md5');
encDigest.update(workingKey);
var enc_cipher = crypto.createCipheriv('aes-256-cbc', encDigest, iv);
var encryptedText = enc_cipher.encrypt(plainText).encode('hex');
return encryptedText;
}
移植的代码(Node.js):
def encrypt(plainText,workingKey):
iv = 'hello'
encDigest = md5.new ()
encDigest.update(workingKey)
enc_cipher = AES.new(encDigest.digest(), AES.MODE_CBC, iv)
encryptedText = enc_cipher.encrypt(plainText).encode('hex')
return encryptedText
function encrypt(plainText, workingKey){
var iv = 'hello';
var encDigest = crypto.createHash('md5');
encDigest.update(workingKey);
var enc_cipher = crypto.createCipheriv('aes-256-cbc', encDigest, iv);
var encryptedText = enc_cipher.encrypt(plainText).encode('hex');
return encryptedText;
}
它不起作用吗?我能看到的唯一可能的问题是异步与同步。例如,
var encDigest=crypto.createHash('md5')当encDigest.update(工作键)时,可能无法解析代码>
被解雇。它看起来相同,但有一些问题:md5
不应该在安全应用程序IMO中使用。而且我不确定iv
是否不应该是静态值。。。比如,支付是非常敏感的事情;IV永远不应该是静态的,实际上应该是尽可能随机的,并且每次加密都应该改变。当然,要解密,应该使用与加密相同的IV。加密后可以公开,而不影响安全性。通常它是以密文为前缀的。您是否尝试过随机测试,以查看是否从python和js版本获得相同的密文输出?