当前位置: 首页 > 工具软件 > phpass > 使用案例 >

使用phpass对密码进行加密安全度比md5高

公孙弘深
2023-12-01

前几天在迷渡博客,看到了国外一些牛人在对密码进行加密的时候,都是使用比对哈希值,来验证密码的,当时感觉有点做作,觉得一个密码有必要那么复杂吗?


先说说我平时在公司是怎么样加密的吧。


首先,在创建用户密码的时候,在用户表,有一个字段是 key ,存储的是随机生成的字符串,然后在对 用户输入的密码 加 上 key 进行md5 加密

$password = $_POST['password'].$key

$password = md5($password)


然后当用户登录的时候,从数据库取出 key ,连接在一起进行加密,验证,个人觉得也算是很安全了吧


今晚,在QQ上与一位前辈聊天,在聊天的时候,有聊到加密这块,他说:我这种加密方式只能是稍微安全点而已,如果数据库被破,正好别人又知道密码,那不是一样的吗?


好吧。。我都没想到这块,看来前辈的几年编程经验不是盖的啊,然后有跑到迷渡看了下那个加密,那时就感觉别人不是做作了,而是真的有那个必要啊!


看看,使用phpass加密的方式吧

// Include phpass 库
require_once('phpass-03/PasswordHash.php')

// 初始化散列器为不可移植(这样更安全)
$hasher = new PasswordHash(8, false);

// 计算密码的哈希值。$hashedPassword 是一个长度为 60 个字符的字符串.
$hashedPassword = $hasher->HashPassword('my super cool password');

// 你现在可以安全地将 $hashedPassword 保存到数据库中!

// 通过比较用户输入内容(产生的哈希值)和我们之前计算出的哈希值,来判断用户是否输入了正确的密码
$hasher->CheckPassword('the wrong password', $hashedPassword);  // false

$hasher->CheckPassword('my super cool password', $hashedPassword);  // true
?>


这样的话,虽然有点麻烦,但是确实是避免了,数据库被破密码泄露的危险了

 类似资料: