十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这种新手是搞不定的 别乱看教 程 小心把网站整坏了 可以付费找专业人士 我
江华网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
php将密码存入数据库,可以分内常见的4种方式:
1、直接md5加密存到到数据库
2、md5两次存到数据库
3、对需要加密的字符串和一个常量 进行混淆加密
4、生成一个随机的变量存到数据库中,然后对需要加密的字符串和这个随机变量加密
?php
$str="admin"; //需要加密的字符串
$str2="php"; //增加一个常量混淆
$pass1=md5($str);
$pass2=md5(md5($str));
$pass3=md5($str.$str2);
echo $pass1."br".$pass2."br".$pass3;
?
输出:
第四种
$str="admin"; //需要加密的字符串
$encrypt=$row['encrypt']; // 生成的 随机加密字符串 存到数据库中
$pass4=md5($str.$encrypt);
// 8db2ec7e9636f124e56f7eb4d7b7cc7e
1、先给你原来的数据表增加一个字段,字段名为md5,类型int,然后运行一个sql语句:
sql语句:update xxx set md5=0 将md5这个字段值变成0,即表示该数据未MD5保存。
2、把这段代码保存为rewrite.php并把数据库名修改成你对应的数据库,然后运行。最好先把你的数据库导出到本地的数据库,然后在本地亲自测试以下这段代码的效果,之后再进行替换。
?php
/*读取md5为0的前30条数据,由于考虑到PHP有个30秒超时的内置,所以一次更新30条,也可以大大降低对数据库的负担。*/
$sql=mysql_query("select id,password from XXX where md5=0 order by id desc limit 0,30");
$num=mysql_num_rows($sql);
if($num==0){
echo "所有MD5密码替换完毕。"; //如果数据库里面所有md5=0的记录都变成了md5=1,则为修改完毕。
exit();
}else{
while($row=mysql_fetch_array($sql)){
$md5_pwd=md5($row['password']); //获取原密码,进行MD5化。
$query=mysql_query("update XXX set md5=1,password='".$md5_pwd."' where id=".$row['id'].""); //将该条数据进行更改,把原密码改成MD5加密后的,并把md5值变成1,表示已经该条数据已经MD5加密
unset($query);
}
mysql_free_result($sql);
unset($sql,$row);
echo "meta http-equiv=\"refresh\" content=\"0;url=rewrite.php\""; //该30条记录转化完毕,继续跳到这个页面执行,一直循环到替换结束。
exit();
}
mysql_close();
?
md5值 是不可逆的。 也就是不可能还原。
你可以使用其他的编码方式。例如base64。这个可以编码,并可以解码。
传输数据的时候通过md5或者哈西算法这些,把某些字段加密,还有多种加密组合到一起,然后获取的时候再解密,这样防止别人获取到一些信息