PHP中的散列函数

来源:互联网 发布:天天卡牌淘宝店 编辑:程序博客网 时间:2024/06/10 00:02

MD:message digest 消息摘要。

下面介绍一下PHP中的一些散列函数。

md5

md5计算字符串的 MD5 散列值(128位二级制,32位16进制)

string md5 ( string$str [,bool$raw_output = false ] )
str

原始字符串。

raw_output

如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以原始的 16 位二进制格式返回。 

其实两种返回值结果是一样的,返回32位16进制的字符串只是便于读写和传播。

<?php$a = '123';var_dump(md5($a) === md5($a, true));
上例输出:bool(true)。

md5_file

md5_file计算指定文件的 MD5 散列值

string md5_file ( string$filename [,bool$raw_output = false ] )
filename

文件名

raw_output

如果被设置为 TRUE,那么报文摘要将以原始的 16 位二进制格式返回。  

attention:

md5_file其实是对文件流进行加密,md5_file('1.jpg') === md5(file_get_contents('1.jgp'));

对于大文件,md5_file采用的方式是分段读取的。

sha1

sha1计算字符串的 sha1 散列值(160位二进制,40位16进制)

string sha1 ( string$str [,bool$raw_output = false ] )

str

输入字符串。

raw_output

如果可选的 raw_output 参数被设置为 TRUE,那么 sha1 摘要将以 20 字符长度的原始格式返回,否则返回值是一个 40 字符长度的十六进制数字。  


sha1_file

sha1_file计算文件的 sha1 散列值

string sha1_file ( string$filename [,bool$raw_output = false ] )

计算并返回由 filename 指定的文件的 sha1 散列值。该散列值是一个 40 字符长度的十六进制数字。 

str

输入字符串。

raw_output

如果可选的 raw_output 参数被设置为 TRUE,那么 sha1 摘要将以 20 字符长度的原始格式返回,否则返回值是一个 40 字符长度的十六进制数字。  

其他相关函数(非散列)


crc32

crc32计算一个字符串的 crc32 多项式

int crc32 ( string$str )

生成 str 的 32 位循环冗余校验码多项式。这通常用于检查传输的数据是否完整。

由于 PHP 的整数是带符号的,许多 crc32 校验码将返回负整数,因此你需要使用 sprintf()printf() 的“%u”格式符来获取表示无符号 crc32 校验码的字符串。

chr

chr返回指定的字符


string chr ( int$ascii )

返回相对应于 ascii 所指定的单个字符。 

ord

ord返回字符的 ASCII 码值

int ord ( string$string )

返回字符串 string 第一个字符的 ASCII 码值。

该函数是 chr() 的互补函数。