PHP获取文件的MD5值并判断是否被修改的例子
由于需要判断上传的文件是否被修改过,需要记录上传文件的md5值,这里记录一下获取文件md5值的方法。
if(isset($_FILES['multimedia'])&&$_FILES['multimedia']['error']==0) { $file_name=$_FILES['multimedia']['name']; $size=getimagesize($_FILES['multimedia']['tmp_name']); $type=$_FILES['multimedia']['type']; $original=$_FILES['multimedia']['tmp_name']; $md5=md5_file($original); echo$md5; }
md5_file()
md5_file()函数计算文件的MD5散列。md5()函数使用RSA数据安全,包括MD5报文摘译算法。如果成功,则返回所计算的MD5散列,如果失败,则返回false。
语法:md5(string,raw)
参数string,必需。规定要计算的文件。
参数charlist,可选。规定十六进制或二进制输出格式:TRUE-原始16字符二进制格式;FALSE-默认。32字符十六进制数。
<?php $filename="test.txt"; $md5file=md5_file($filename); echo$md5file; ?>
存储"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"Thefileisok."; } else { echo"Thefilehasbeenchanged."; } ?>
输出:
Thefileisok.
PS:这里再为大家提供2款MD5加密工具,感兴趣的朋友可以参考一下:
MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password
在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha