【函数功能】
该函数计算指定文件的 SHA-1 散列。
【函数语法】
sha1_file($filename, $raw_output = null)
【参数说明】
$filename:必需,要计算的文件。
$raw_output:可选,布尔值,十六进制或二进制输出格式:
TRUE - 原始 16 字符二进制格式
FALSE - 默认。32 字符十六进制数
【演示程序】
<?php
/**
* sha1_file($filename, $raw_output = null)
* **/
$filename = "test.txt";
$val = sha1_file($filename);
echo $val;
echo '<br>';
$val = sha1_file($filename,true);
echo $val;
echo '<br>';
//16位加密后的值有不可见的字符,所以我们采用下面的方法将他们的ASCII码值打印出来看一下
$string = $val;
while(strlen($string)>0){
echo ord($string).'-';
$string = substr($string, 1,strlen($string)-1);
}
?>
【输出结果】
93afd225c7f488debb2b2bdb9d52765f0a7a1d52
???%????++?Rv_ zR
248147-175-210-37-199-244-136-222-187-43-43-219-157-82-118-95-10-122-29-82-
【特别注意】
1.函数使用美国 Secure Hash 算法 1。
2.若指定文件找不到则返回false。
3.采用16位格式时直接打印会有乱码。
4.PHP 版本:4.3.0+。
5.更新日志:在 PHP 5.0 中,新增 $raw_output 参数。
来自 RFC 3174 的解释 - 美国 Secure Hash 算法 1:SHA-1 产生一个名为报文摘要的 160 位的输出。报文摘要可以被输入到一个可生成或验证报文签名的签名算法。对报文摘要进行签名,而不是对报文进行签名,这样可以提高进程效率,因为报文摘要的大小通常比报文要小很多。数字签名的验证者必须像数字签名的创建者一样,使用相同的散列算法。
【原版定义】
/**
* Calculate the sha1 hash of a file
* @link http://www.php.net/manual/en/function.sha1-file.php
* @param filename string <p>
* The filename of the file to hash.
* </p>
* @param raw_output bool[optional] <p>
* When true, returns the digest in raw binary format with a length of
* 20.
* </p>
* @return string a string on success, false otherwise.
*/
转载请注明出处:php1234.cn ,原文地址:http://www.php1234.cn/a/functions/2016/1102/113.html