5.15计算字符串的散列
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()的计算,最终分别会得到长度一样的散列数值。

上一篇:5.14转换字符串到数组
下一篇:5.16小结