您当前的位置:首页 > 文章教程 > 计算机与互联网 > 网络编程

5.15计算字符串的散列

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-22 使用md5()和sha1()计算字符串散列

上一篇:5.14转换字符串到数组

下一篇:5.16小结