【函数功能】
该函数计算指定文件的 MD5 散列。
【函数语法】
md5_file ($filename, $raw_output = null)
【参数说明】
$filename:必需,要计算的文件。
$raw_output:可选,布尔值,十六进制或二进制输出格式:
TRUE - 原始 16 字符二进制格式
FALSE - 默认。32 字符十六进制数
【演示程序】
<?php
/**
* md5_file ($filename, $raw_output = null)
* **/
$filename = "test.txt";
$val = md5_file($filename);
echo $val;
echo '<br>';
$val = md5_file($filename,true);
echo $val;
echo '<br>';
//16位加密后的md5值有不可见的字符,所以我们采用下面的方法将他们的ASCII码值打印出来看一下
$string = $val;
while(strlen($string)>0){
echo ord($string).'-';
$string = substr($string, 1,strlen($string)-1);
}
?>
【输出结果】
f8a3ca8f4036e40914a5bfbac4489db1
???@6? ????H??
248-163-202-143-64-54-228-9-20-165-191-186-196-72-157-177-
【特别注意】
1.函数使用 RSA 数据安全,包括 MD5 报文摘要算法。
2.若指定文件找不到则返回false。
3.采用16位格式时直接打印会有乱码。
4.PHP 版本:4.2.0+。
5.更新日志:在 PHP 5.0 中,新增 $raw_output 参数。
来自 RFC 1321 的解释 - MD5 报文摘要算法:MD5 报文摘要算法将任意长度的信息作为输入值,并将其换算成一个 128 位长度的"指纹信息"或"报文摘要"值来代表这个输入值,并以换算后的值作为结果。MD5 算法主要是为数字签名应用程序而设计的;在这个数字签名应用程序中,较大的文件将在加密(这里的加密过程是通过在一个密码系统下[如:RSA]的公开密钥下设置私有密钥而完成的)之前以一种安全的方式进行压缩。
【原版定义】
/**
* Calculates the md5 hash of a given file
* @link http://www.php.net/manual/en/function.md5-file.php
* @param filename string <p>
* The filename
* </p>
* @param raw_output bool[optional] <p>
* When true, returns the digest in raw binary format with a length of
* 16.
* </p>
* @return string a string on success, false otherwise.
*/
转载请注明出处:php1234.cn ,原文地址:http://www.php1234.cn/a/functions/2016/1031/111.html