Mos*_*med 1 encryption bcrypt laravel
bcrypt和 之间有什么区别encrypt,以及如何将laravel?\xe2\x80\x8f中的值返回到正常状态
bcrypt()用于创建Hash,这是将纯文本字符串转换为哈希值的单向过程。您无法对值进行取消哈希处理,因此无法将值返回到“正常”状态。
encrypt()用于“混淆”,它将纯文本字符串更改为非人类可读的值。这不是一个单向过程,因为decrypt()它允许您获取纯文本值。
一些例子:
bcrypt('password'); // '$2y$10$s8MB0AJsUmUN/NCWqZuDx.KrXXNYw50fFdJWqKR28qoOeMN.Rahfq'
Run Code Online (Sandbox Code Playgroud)
上面的字符串'password'被转换成看似随机的字符串。无法撤消此操作,这就是为什么散列是存储密码等敏感信息的首选方法。您可以比较哈希值以确定它们是否匹配,但这需要您明确知道原始值:
Hash::compare('12345678', bcrypt('password')); // false
Hash::compare('password', bcrypt('password')); // true
Run Code Online (Sandbox Code Playgroud)
至于加密:
$encrypted = encrypt('password'); // 'eyJpdiI6Im9uQ1M0NDNhcXBWdnJ1azBXWDQwMlE9PSIsInZhbHVlIjoiZmxrcGRNVGY3MnIzbVhkMmsyQzNVUT09IiwibWFjIjoiMTViZWVjMWJiYTAzZTNiNTc3YzljNmMwMjI5ZTBmZjc3M2UyN2EwOGZhMWFiOTg5MDY2NDY1Y2QwZjRmZTgyNSJ9'
$decrypted = decrypt($encrypted); // 'password'
Run Code Online (Sandbox Code Playgroud)
如您所见,解密加密值很简单。此方法对于隐藏非敏感信息很有用,但绝不应用于存储敏感信息。
| 归档时间: |
|
| 查看次数: |
827 次 |
| 最近记录: |