5.15 计算字符串的散列
散列就是指把任意长度的输入(又叫做预映射),通过散列算法,变换成固定长度的输出,该输出就是散列值。
散列主要用于信息安全领域的加密算法,它把一些不同长度的信息转化成杂乱的128位的编码,这个编码叫做散列值。也可以说,散列就是找到一种数据内容和数据存放地址之间的映射关系。常见的散列算法有MD5、SHA1等。
PHP中提供了对应的函数,完成对字符串做MD5散列计算的函数,也提供函数完成SHA1散列计算的函数,这两个函数分别是md5()和sha1(),下面分别加以简要说明。函数md5()的语法如下所示。
string md5(string$str)
该函数用来计算参数字符串$str的MD5散列。另外一个计算散列函数sha1()的语法如下所示。
string sha1(string$str)
该函数用来计算参数字符串$str的SHA1散列。代码5-22是这两个函数使用的示例程序。
代码5-22 使用函数md5()和sha1()计算字符串的散列值5-22.php
01 <?php
02 $str1='This is a secret';
03 $str2='root';
04
05 echo'原字符串:';
06 echo'<br/>';
07 echo'str1='.$str1;
08 echo'str2='.$str2;
09 echo'<br/>';
10 echo'<br/>';
11
12 echo'使用md5加密:';
13 echo'<br/>';
14 echo"md5($str1)=".md5($str1);//输出MD5值
15 echo'<br/>';
16 echo"md5($str2)=".md5($str2);//输出MD5值
17
18 echo'<br/>';
19 echo'<br/>';
20
21 echo'使用sha1加密:';
22 echo'<br/>';
23 echo"sha1($str1)=".sha1($str1);//输出SHA1值
24 echo'<br/>';
25 echo"sha1($str2)=".sha1($str2);//输出SHA1值
26 ?>
【代码解析】代码5-22的执行结果如图5-22所示。从中看出,无论原字符串的长度是多少,经过函数md5()和sha1()的计算,最终分别会得到长度一样的散列数值。
共有条评论 网友评论