SALT的组合加密方式

 前段时间很多网站被撞库了,我们也不例外。之前用的密码一次MD5加密的算法已经不安全了,因为有太多的地方(http://www.cmd5.com/)可以暴力爆破MD5的加密算法。为了解决这个安全问题,决定对用户密码的加密强度进行改进,将原先的唯一MD5方式进行提升,对密码进行两次的MD5加密,在进行第二次MD5加密的时候,对第一次的MD5的值再加点盐(SALT)。因为煮菜的时候每次放的盐都是不一样的,所以这个$salt是个随机字符,每个用户都不一样。新用户注册:

1、获取SALT

$salt = substr(uniqid(rand()),-6);

 2、密码通过SALT的组合加密方式

$password = md5(md5($password).$salt);

3、在用户表里增加一个salt字段,把随机生成的$salt值和用户名密码一起存到表里去

$sql = "INSERT INTO sdb_members SET uname='{$uname}',password='{$password}',salt='{$salt}'";

用户登录:1、通过uname去表里找出对应的会员表信息

$sql = "SELECT * sdb_members SET uname='{$uname}'";

2、提取该uname的密码和SALT值,然后按通过的算法进行比对

//$password1是用户表里存的值,$password2是前台输入的值
$password1 = md5(md5($password2).$salt);

 大体的思路就是这样。

相关推荐