encryption - MD5加密和密码比较
问题描述
我已经使用 MD5 创建了密码,那么如何将使用 MD5 加密的密码与密码进行比较,该密码在回送的登录部分中给出?
解决方案
我假设您存储了散列密码(在您的情况下,它使用MD5
函数进行散列,但请使用更好的散列,例如SHA-3
):
$ echo mySecurePassword | md5
6b069a261eb584b5706a4a154fa8cdb1
$ echo 'user1:6b069a261eb584b5706a4a154fa8cdb1` >> /etc/my-password-storage
现在来了一个用户,让我们检查一下她是否知道密码:
$ login: user1
password: mysecurePassword
// here your 'login' program takes whatever user provided as a password and hashes it again:
// providedPasswordHash = md5("mysecurePassword") // providedPasswordHash = "a7d16ed9ff6f2185e4e5236e4cfcd3d1" now
// Now your program checks if it is the same as in /etc/my-password-storage for 'user1'
// Aah, it is not: a7d16ed9ff6f2185e4e5236e4cfcd3d1 != 6b069a261eb584b5706a4a154fa8cdb1
// The user forgot to uppercase S in their password
// so you prompt again:
login: user1
password: mySecurePassword
// now she typed correctly: md5(providedPassword)==md5HashStored, i.e. "6b069a261eb584b5706a4a154fa8cdb1"=="6b069a261eb584b5706a4a154fa8cdb1"
// she has successfully authenticated
推荐阅读
- python - 如何计算隐式数据结构中某物的实例?
- sql-server - 将 SQL Server 字符串转换为日期时间以导入 Oracle
- javascript - 如何清空所有 HTML 元素中的所有类属性
- php - 如何为这个自定义的 rest API 进行分页?
- php - Cakephp 2 Containable 在自定义库中不起作用
- php - 如何删除 WordPress 帖子中的帖子标题和帖子内容?
- python - 我需要读取文本文件并使用 python 将特定值插入 csv 文件
- python - 替换熊猫数据框中的多个字符
- postgresql - Postgres 时间戳之间的时间差(以分钟为单位)
- laravel - 是否可以为 Laravel Vapor 使用 Papertrail 之类的服务?