在使用Laravel时,我最近注意到,当它加密一个值时,加密的字符串会不断变化。
例如
ecrypt('abc')返回 xyzABCDXZY
但如果我稍后运行相同的功能:
ecrypt('abc')返回 xyzABDJSAS
现在这让我真的很困惑。如果每次调用函数时加密结果不同,那么在调用解密函数时它们是否能够恢复原始值(在这种情况下为 abc )?
我认为它与加密功能有关,但我不能为我的生活弄清楚什么和如何。有人可以对此有所了解吗?感谢。
答案 0 :(得分:2)
实际上它可以解密它,例如,除了加密的纯文本(如种子值)之外,加密算法可以在加密数据中嵌入变量,因此算法
1)加密:生成种子,使用该种子加密数据,隐藏加密数据内的种子,生成最终加密数据
2)解密:读取加密数据,获取隐藏的种子并应用此方法获取纯文本
在所有情况下,纯文本数据都是相同的。