这篇文章主要介绍了php中六种密码加密方式的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
六种密码加密方式如下:
1, MD5加密
string md5 (, string str 美元;[,bool raw_output 美元;=,false ],)
参数
str,——,原始字符串。
raw_output,,,如果可选的raw_output被设置为真,那么MD5报文摘要将以16字节长度的原始二进制格式返回。
这是一种不可逆加密,执行如下的代码
password 美元;=,& # 39;123456 & # 39;; echo md5(密码)美元;
得到结果是e10adc3949ba59abbe56e057f20f883e
2, Crype加密
string crypt (, string str 美元;[,string salt 美元;],)
crypt()返回一个基于标准UNIX DES算法或系统上其他可用的替代算法的散列字符串。
参数
str,,,待散列的字符串。
盐,,,可选的盐值字符串。如果没有提供,算法行为将由不同的算法实现决定,并可能导致不可预料的结束。
这是也一种不可逆加密,执行如下的代码
代码如下:
password 美元;=,& # 39;123456 & # 39;;=$ salt “test"//,只取前两个 echo 隐窝(密码美元,,盐);
得到的结果是teMGKvBPcptKo
使用自动盐值的例子如下:
代码如下:
password 美元;=,地下室(& # 39;我的密码# 39;);,//,自动生成盐值/*,你应当使用,crypt(),得到的完整结果作为盐值进行密码校验,以此来避免使用不同散列算法导致的问题。(如上所述,基于标准,DES 算法的密码散列使用,2,字符盐值,但是基于,MD5 算法的散列使用,12,个字符盐值)。*/if (crypt(& # 39;我的密码# 39;,,密码)美元,==,美元密码),{ ,,echo “Password 验证!“; }
执行结果是输出密码验证!
以不同散列类型使用crypt()的例子如下:
代码如下:
if (==CRYPT_STD_DES 1), { ,,,echo & # 39; Standard DES:, & # 39;,只隐窝(& # 39;rasmuslerdorf& # 39;,, & # 39; rl # 39;),只“\ n"; } if (CRYPT_EXT_DES ==, 1), { ,,,echo & # 39; Extended DES:, & # 39;,只隐窝(& # 39;rasmuslerdorf& # 39;,, & # 39; _J9 . . rasm& # 39;),只“\ n"; } if (CRYPT_MD5 ==, 1), { ,,,echo & # 39; MD5:,,,,,,,,,, & # 39;,只隐窝(& # 39;rasmuslerdorf& # 39;,, & # 39; $ 1 $ rasmusle $ & # 39;),只“\ n"; } if (CRYPT_BLOWFISH ==, 1), { ,,,echo & # 39;河豚:,,,,,& # 39;,只隐窝(& # 39;rasmuslerdorf& # 39;,, & # 39; $ 2 $ 07 usesomesillystringforsalt & # 39;美元),只“\ n"; } if (CRYPT_SHA256 ==, 1), { ,,,echo & # 39; sha - 256:,,,,,, & # 39;,只隐窝(& # 39;rasmuslerdorf& # 39;,, & # 39; 5轮美元=5000 usesomesillystringforsalt & # 39;美元),只“\ n"; } if (CRYPT_SHA512 ==, 1), { ,,,echo & # 39; sha - 512:,,,,,, & # 39;,只隐窝(& # 39;rasmuslerdorf& # 39;,, & # 39; 6轮美元=5000 usesomesillystringforsalt & # 39;美元),只“\ n"; }
其结果如下
Standard DES: rl.3StKT.4T8M Extended DES: _J9 . . rasmBYk8r9AiWNc MD5:,,,,,,,,,, 1美元rasmusle rISCgZzpwk3UhDidwXvin0美元 河豚:,,,,,07年usesomesillystringfore2uDLvp1Ii2e.美元/U9C8sBjqp8I90dH6hi 2美元 sha - 256:,,,,,, 5轮美元=5000 usesomesillystri KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6美元 sha - 512:,,,,,, 6轮美元=5000 usesomesillystri D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO美元。ChWQW21
(学习视频分享:php视频教程)
在crypt()函数支持多重散列的系统上、下面的常量根据相应的类型是否可用被设置为0或1:
CRYPT_STD_DES -基于标准DES算法的散列使用“。/0-9A-Za-z"字符中的两个字符作为盐值。在盐值中使用非法的字符将导致crypt()失败。
CRYPT_EXT_DES -扩展的基于DES算法的散列,其盐值为9个字符的字符串,由1个下划线后面跟着4字节循环次数和4字节盐值组成。它们被编码成可打印字符,每个字符6位,有效位最少的优先0到63年被编码为“。/0-9A-Za-z"。在盐值中使用非法的字符将导致crypt()失败。
CRYPT_MD5 - MD5散列使用一个以1美元开始的12字符的字符串盐值。