数据库中用户密码的存储方式-加盐

(Salt),在密码学中,是指在散列之前将散列内容(例如:密码)的任意固定位置插入特定的字符串。这个在散列中加入字符串的方式称为“加盐”。其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性。
在大部分情况,盐是不需要保密的。盐可以是随机产生的字符串,其插入的位置可以也是随意而定。如果这个散列结果在将来需要进行验证(例如:验证用户输入的密码),则需要将已使用的盐记录下来。
--摘自维基百科

//这是一个简单的、在输入内容之後加入“WIKIPEDIA“并进行散列的PHP代码。

数据库表设计

mysql> desc User;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| user_name | varchar(50) | NO   |     |         |       |
| slat     | char(50)     | NO   |     |         |       |
| password  | varchar(256)| NO   |     |         |       |
+----------+-------------+------+-----+---------+-------+

在用户注册或修改密码的过程中在随机生成固定长度的字符串salt,然后以自定义的方式拼接字符串,然都执行MD5或SHA散列加密方式,将salt和加密后的密码存入数据库即可

你可能感兴趣的:(数据库中用户密码的存储方式-加盐)