我试图在Android,iOS和Web上实施aes256安全性。在iOS部分我使用this library。但是当我尝试在this website或任何其他网站上使用相同密码解密文本或使用html项目中的google aes.js文件解密文本时。他们没有给出相同的结果。 我错过了什么?谢谢。
let str = "emre"
let password = "2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI"
let encrypted = AES256CBC.encryptString(str, password: password)
print(encrypted!)
let decrypted = AES256CBC.decryptString(encrypted!, password: "2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI")
print(decrypted!)
答案 0 :(得分:1)
您使用的AES256CBC.encryptString(..)
方法生成IV并使用它预先加密数据。那么AES256CBC.decryptString(..)
方法
在解密消息之前从加密数据中获取 IV 。
查看您正在使用的encryptString
方法。看到它创造的IV? IV是在CBC模式下运行时作为AES加密/解密输入的随机位数据。 IV通常预先加入到加密数据中(就像这个库在这里所做的那样),但这在不同的库中并不是标准化的。
如果您不想将此库与其他实现一起使用,则需要自己处理此部分。
此外,您链接的在线网页似乎不支持CBC模式,因此请尝试使用其他网页,例如this。