計算文字檔案"test.txt" 的MD5 雜湊:
<?php$filename = "test.txt";$md5file = md5_file($filename);echo $md5file;?>上面的程式碼將輸出:
d41d8cd98f00b204e9800998ecf8427emd5_file() 函數計算檔案的MD5 雜湊。
md5_file() 函數使用RSA 資料安全,包括MD5 封包摘要演算法。
來自RFC 1321 的解釋- MD5 封包摘要演算法: MD5 封包摘要演算法將任意長度的資訊作為輸入值,並將其換算成一個128 位元長度的"指紋資訊"或"封包摘要"值來代表這個輸入值,並以換算後的值作為結果。 MD5 演算法主要是為數位簽章應用程式而設計的;在這個數位簽章應用程式中,較大的檔案將在加密(這裡的加密過程是透過在一個密碼系統下[如:RSA]的公開金鑰下設定私有金鑰而完成的)之前以安全的方式進行壓縮。
如需計算字串的MD5 雜湊,請使用md5() 函數。
md5_file( file,raw )
參數 | 描述 |
---|---|
file | 必需。規定要計算的文件。 |
raw | 可選。一個規定十六進位或二進位輸出格式的布林值: TRUE - 原始16 字元二進位格式 FALSE - 預設。 32 字元十六進位數 |
傳回值: | 如果成功則傳回已計算的MD5 雜湊,如果失敗則傳回FALSE。 |
---|---|
PHP 版本: | 4.2.0+ |
更新日誌: | 在PHP 5.0 中, raw參數變成可選的。自PHP 5.1 起,可以透過封裝使用md5_file()。例如: md5_file("http://w3cschool.cc/..") |
在檔案中儲存"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.