你可以接受的时候不用md5加密,执行sql语句时在加密:
在云冈等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都做网站 网站设计制作按需开发网站,公司网站建设,企业网站建设,品牌网站建设,全网营销推广,外贸营销网站建设,云冈网站建设费用合理。
$sql="insert into table (`username`,`password`,`email`,`date`) values('".$user."','".md5($pw)."','".$em."','".$date."')";
另外,给你提一个小小的建议,就是字段名最好用反引号括起来,避免和数据库中的关键字冲突,然后就是,当插入字符串类型的变量的时候用双引号和两个点连接,即:".变量名."
虽然md5是不可逆的加密方式,但是网上还是可以解密的,在线解密md5运用的是一次md5加密方式去解析的,解析的方式也是运用强大的数据内容一
一去对比的,找到匹配的就可以了。在程序中你可以多次用md5加密和字符串截取,或者追加字符串,比如密码,传来的值用同样的方式加密和数据库保存的密码做对比就可以了,这样安全性会很高,再强大的md5数据库内容也找不到你设置的密码
把这段密文分割成若干段,对每段都进行一次MD5运算,然后把这堆密文连成一个超长的字符串,最后再进行一次MD5运算,得到仍然是长度为32位的密文。
?php
//把密文分割成两段,每段16个字符
function md5_2_1($data)
{
//先把密码加密成长度为32字符的密文
$data = md5($data);
//把密码分割成两段
$left = substr($data, 0, 16);
$right = substr($data, 16, 16);
//分别加密后再合并
$data = md5($left).md5($right);
//最后把长字串再加密一次,成为32字符密文
return md5($data);
}
//把密文分割成32段,每段1个字符
function md5_2_2($data)
{
$data = md5($data);
//循环地截取密文中的每个字符并进行加密、连接
for ($i = 0; $i 32; $i++) {
$data .= md5($data{$i});
}
//这时$data长度为1024个字符,再进行一次MD5运算
return md5($data);
}
?
1.
通过get或post获取前台传来的密码
$_POST['password'];
2.
md5
函数加密: $pwd
=
md5($_POST['password']);
3.
写入数据库
insert
into
table(name,pwd)
value('name',$pwd);
首先介绍一下PHP中MD5函数的使用方法:
?php
$pswd1=md5("cenusdesign");
echo
$pswd1;
//运行结果为:fc60ec37d1c08d5b0fb67a8cd934d5ba
$pswd2=md5("Cenusdesign");
echo
$pswd2;
//运行结果为:067577d9fc109c80538c81d6f02bd293
?
显然,经过md5加密后,原本“cenusdesign”转变成了一组32位的字符串,而且,即使是一个字母的大小写变化,这组字符串就会发生巨大的变化。
Cenus
Design建议把用户注册时,将密码首先经过MD5转换,然后将转换加密后的数据库。在用户登陆时,也将密码先进行MD5转化,再和数据库中那组经过MD5加密的字符串进行比较。这样,就可以做到在不知道用户确切密码的情况下完成密码的比对操作。
你好,mysql的md5('admin')结果是21232f297a57a5a743894a0e4a801fc3
php的md5('admin')结果是21232f297a57a5a743894a0e4a801fc3
请检查你你mysql的md5()函数内的变量是否正确,未有容易搞错的例如"admin"MD5结果为de763cd3b4eeea46d7dec0d499a1f44f