我正在尝试找出 Node.js Crypto 库以及如何根据我的情况正确使用它。
我的目标是:
键入十六进制字符串 3132333435363738313233343536373831323334353637383132333435363738
十六进制字符串中的文本 46303030303030303030303030303030
十六进制字符串中的密文 70ab7387a6a94098510bf0a6d972aabe
我正在通过 AES 256 的 ac 实现和通过http://www.hanewin.net/encrypt/aes/aes-test.htm的网站对此进行测试
这是我必须要做的,它没有按照我期望的方式工作。我最好的猜测是密码函数的输入和输出类型不正确。唯一有效的是utf8,如果我使用十六进制它会失败并出现v8错误。关于我应该转换或更改以使其正常工作的任何想法。
var keytext = "3132333435363738313233343536373831323334353637383132333435363738";
var key = new Buffer(keytext, 'hex');
var crypto = require("crypto")
var cipher = crypto.createCipher('aes-256-cbc',key,'hex');
var decipher = crypto.createDecipher('aes-256-cbc',key,'hex');
var text = "46303030303030303030303030303030";
var buff = new Buffer(text, 'hex');
console.log(buff)
var crypted = cipher.update(buff,'hex','hex')
在这个例子中,crypted 的输出是 8cfdcda0a4ea07795945541e4d8c7e35,这不是我所期望的。