php中六种密码加密方式的示例

  介绍

这篇文章主要介绍了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字符的字符串盐值。

php中六种密码加密方式的示例