我读过无数"加密结果在X& Y'#34;但遗憾的是无法找到解决方案。
我正在尝试使用CocoaSecurity在Swift中基于一些以前编写的加密代码复制Node中字符串的AES加密。
我有两个都返回base64值,但不幸的是它们不一样。
仅供参考我添加了一个"测试"以key,iv和string为例,这些不是我在项目中使用的值。
let key = Data.init(base64Encoded: "DqviM6rMaYF3kHymVTiis7MH7agLcFqmDoX085K7AWs=")
let iv = Data.init(base64Encoded: "zur4lDpQk4tFaqnEUYKD9A==")
let aes256 = CocoaSecurity.aesEncrypt("Testing1!", key: key, iv: iv)
let result = aes256?.base64
// result = nmvqDhE43gRQ1B0EWCu7vg==
在Node中,我已经编写了加密(使用相同的密钥& iv ...我已经三次检查),如下所示:
const key = Buffer.from('DqviM6rMaYF3kHymVTiis7MH7agLcFqmDoX085K7AWs=', 'base64');
const vector = Buffer.from('zur4lDpQk4tFaqnEUYKD9A==', 'base64');
const encryptTool = crypto.createCipheriv('aes256', key, vector);
const result = encryptTool.update("Testing1!", 'utf8', 'base64') + encryptTool.final('base64');
// results = FabfCtSAAuiZ9K93wcHXYA==
我知道加密实现之间的填充偶尔会有差异,但我尝试在上面添加encryptTool.setAutoPadding(false);
并且它不会运行。
是否可以在此节点部分设置任何其他选项以确保返回相同的base64字符串?
在上面编辑,包括键/矢量,输入字符串和结果