PHP md5_file() 函數
實例
計算文本文件 "test.txt" 的 MD5 散列:
<?php $filename = "test.txt"; $md5file = md5_file($filename); echo $md5file; ?>
以上代碼的輸出:
d41d8cd98f00b204e9800998ecf8427e
定義和用法
md5_file() 函數計算文件的 MD5 散列。
md5_file() 函數使用 RSA 數據安全,包括 MD5 報文摘要算法。
來自 RFC 1321 的解釋 - MD5 報文摘要算法:MD5 報文摘要算法將任意長度的信息作為輸入值,并將其換算成一個 128 位長度的"指紋信息"或"報文摘要"值來代表這個輸入值,并以換算后的值作為結果。MD5 算法主要是為數字簽名應用程序而設計的;在這個數字簽名應用程序中,較大的文件將在加密(這里的加密過程是通過在一個密碼系統下[如:RSA]的公開密鑰下設置私有密鑰而完成的)之前以一種安全的方式進行壓縮。
如需計算字符串的 MD5 散列,請使用 md5() 函數。
語法
md5_file(file,raw)
參數 | 描述 |
---|---|
file | 必需。規定要計算的文件。 |
raw |
可選。布爾值,規定十六進制或二進制輸出格式:
|
技術細節
返回值: | 如果成功則返回已計算的 MD5 散列,如果失敗則返回 FALSE。 |
PHP 版本: | 4.2.0+ |
更新日志: |
在 PHP 5.0 中,新增 raw 參數。 自 PHP 5.1 起,可以通過封裝使用 md5_file()。例如: md5_file("http://w3cschool.com.cn/..") |
更多實例
例子 1
在文件中存儲 "test.txt" 的 MD5 散列:
<?php $md5file = md5_file("test.txt"); file_put_contents("md5file.txt",$md5file); ?>
檢測 "test.txt" 是否已被更改(即 MD5 散列是否已被更改):
<?php $md5file = file_get_contents("md5file.txt"); if (md5_file("test.txt") == $md5file) { echo "The file is ok."; } else { echo "The file has been changed."; } ?>
以上代碼的輸出:
The file is ok.