导航:首页 > 编程语言 > php计算文件的md5

php计算文件的md5

发布时间:2022-07-02 05:46:25

‘壹’ php MD5的定义用法

The md5() function calculates the MD5 hash of a string.
md5()函数的作用是:计算字符串的MD5 hash。
The md5() function uses the RSA Data Security, Inc. MD5 Message-Digest Algorithm.
md5()函数使用美国实验室(以研究加密算法而着名)数据安全加密。它采用MD5信息散列[Message-Digest]运算法则
From RFC 1321 - The MD5 Message-Digest Algorithm: The MD5 message-digest algorithm takes as input a message of arbitrary length and proces as output a 128-bit fingerprint or message digest of the input. The MD5 algorithm is intended for digital signature applications, where a large file must be compressed in a secure manner before being encrypted with a private (secret) key under a public-key cryptosystem such as RSA.
RFC1321的解释 - MD5信息散列[Message-Digest]运算法则:“MD5信息散列运算法则将任意长度的信息作为输入值,并将其换算成一个128位长度的“指纹信息”或“信息散列”值来代表这个输入值,并以换算后的值作为结果。MD5运算法则主要是为“数字签名程序”而设计的;在这个“数字签名程序“中,较大的文件将在加密(这里的加密过程是通过在一个密码系统下[如:RSA]的公开密匙下设置私要密匙而完成的)之前以一种安全的方式进行压缩。”
This function returns the calculated MD5 hash on success, or FALSE on failure.
如果函数执行成功将计算MD5 hash,如果失败返回false。

‘贰’ php 获得上传文件的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 "The file is ok.";}else{echo "The file has been changed.";}?>

输出:

The file is ok.

‘叁’ 如何使用PHP计算文件的MD5值

function getAllFileMd5($dir){
$hash = '';
$dir = new RecursiveDirectoryIterator($dir);
foreach(new RecursiveIteratorIterator($dir) as $file) {
$hash .= md5_file($file);
}
return md5($hash);
}
?>

‘肆’ 超大文件如何计算md5

首先,至少没必要先把整个文件读到内存里。比如在 php 里,如果有人 md5(file_get_contents(big_file_name)) 就确实非常不妥当。因为 md5 是每 512 bit 作为一个 chunk 进行计算的。所以可以每次读取一部分的内容(最少 512 bit,比较合适是 st_blksize),进行那些 chunk 部分的计算,之后再读取下一部分内容继续计算。简单先说下,md5是有规范的,提供了现成的算法(规范的名字就是md5算法。RFC 1321 The MD5 Message-Digest Algorithm),我们只需要翻译成c、javapython、js等等代码。前端算超大文件可以取头跟尾chunk内容及整个文件的name + update 时间一起算md5值就比较快了,只是为了做唯一标识来做断点续传,从业务逻辑上应该够用了。推荐使用 js spark-md5 开源库,支持直接append各个部分然后算出md5。我做的断点续传功能就是用它在前端算的md5. 各大网盘 TB级别 md5算法应该是这样的,楼上几位都说了文件md5是文件流分块算出来的,那么网盘想获得TB级别文件的md5就必须读取整个文件的文件流才能得到,但是这么做效率十分低下,运算时间是个问题。但是大家忽略了一个问题,文件在上传的过程也是分块上传的,这些上传的碎片其实也是文件流。那么可以把计算md5的时间分摊到每一个碎片上。这样每上传一个片段就计算一点等上传完成了,文件的md5也就算出来了。okTB级别MD5不是问题了。上传完成md5自然就出来了。 不知道我的猜测大家有其他看法没有。刚才提出都传完了就还怎么秒传。秒传最基本的是先要前端算出md5然后传给后端(可能需要更多种哈希值)我研究了很久前端没有办法秒内完成超大文件MD5的,现在用html5 的api 可以算出任意大小文件的 md5 但是耗时相当长。我没有解决办法。也没有想到那些网盘怎么在前端快速获取md5的。

‘伍’ 如何用php对文件进行MD5校验 - PHP进阶讨论

恩,对以前的版本不支持md5_file. (PHP 4 >= 4.2.0, PHP 5)

‘陆’ md5_file — 计算指定文件的 MD5 散列值

总结后的知识希望能帮到你:
函数名:md5_file
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
md5_file — 计算指定文件的 MD5 散列值
说明
md5_file ( string $filename , bool $raw_output = false ) : string
使用 » RSA 数据安全公司的 MD5 报文算法计算 filename 文件的 MD5 散列值并返回。该散列值为 32 字符的十六进制数字。
参数
filename
文件名
raw_output
如果被设置为 true,那么报文摘要将以原始的 16 位二进制格式返回。
返回值
成功返回字符串,否则返回 false。
更新日志
版本 说明
5.1.0 函数改用流 API。这意味着能够配合封装器使用该函数,比如 md5_file('http://example.com/..')。
范例
示例 #1 md5_file() 使用范例

‘柒’ php md5有什么用,不是一样破解得了吗

PHP 自带的加密函数 md5()、crypt()
md5() 用来计算 MD5 哈稀。语法为:string md5(string str);
crypt() 将字符串用 UNIX 的标准加密 DES 模块加密。这是单向的加密函数,无法解密。欲比对字符串,将已加密的字符串的头二个字符放在
salt 的参数中,再比对加密后的字符串。语法为:string crypt(string str, string [salt]);
网上的解密网站,只能破解一些较简单的,如果感觉MD5加密函数不行,可以尝试用crypt()

‘捌’ 如何遍历一个文件夹下的所有文件,并用md5函数算出所有文件的md5值(用php实现)

function file_read_all ($dir)
{
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
$n=0;
while (($file = readdir($dh)) !== false) {
if ( $file == '.' or $file =='..' or $file=='.svn')
{
continue;
}
echo md5_file($dir.$file);//计算每个文件md5值 echo '<br />';
if (is_dir ($dir.$file))
{
file_read_all ($dir.$file.'/');
}
}
}
closedir($dh);
}
}

‘玖’ php中关于md5函数参数的问题

string md5 ( string str [, bool raw_output])

Calculates the MD5 hash of str using the RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash. The hash is a 32-character hexadecimal number. If the optional raw_output is set to TRUE, then the md5 digest is instead returned in raw binary format with a length of 16.

简单翻译一下:
用RSA Data Security, Inc. MD5 Message-Digest算法计算一个字符串 str 的MD5哈希值并返回. 这个哈希值是一个32个字符的16进制数.
如果可选参数raw_output设置为 true ,则md5函数将改为返回一个未加工的,长度为16的二进制格式的摘要.

‘拾’ php版本的ueditor如何将上传的文件以文件自身的md5值命名

1 if(isset($_FILES['multimedia']) && $_FILES['multimedia']['error']==0)
2 {
3 $file_name = $_FILES['multimedia']['name'];
4 $size = getimagesize($_FILES['multimedia']['tmp_name']);
5 $type = $_FILES['multimedia']['type'];
6 $original = $_FILES['multimedia']['tmp_name'];
7 $md5 = md5_file($original);
8 echo $md5;
9 }
md5_file()
md5_file() 函数计算文件的 MD5 散列。md5() 函数使用 RSA 数据安全,包括 MD5 报文摘译算法。如果成功,则返回所计算的 MD5 散列,如果失败,则返回 false。
语法:md5(string,raw)
参数string,必需。规定要计算的文件。
参数charlist,可选。规定十六进制或二进制输出格式:TRUE - 原始 16 字符二进制格式;FALSE - 默认。32 字符十六进制数。
1 <?php
2 $filename = "test.txt";
3 $md5file = md5_file($filename);
4 echo $md5file;
5 ?>
存储 "test.txt" 文件的 MD5 散列:
1 <?php
2 $md5file = md5_file("test.txt");
3 file_put_contents("md5file.txt",$md5file);
4 ?>
在本例中,我们将检测 "test.txt" 是否已被更改(即是否 MD5 散列已被更改):
01 <?php
02 $md5file = file_get_contents("md5file.txt");
03 if (md5_file("test.txt") == $md5file)
04 {
05 echo "The file is ok.";
06 }
07 else
08 {
09 echo "The file has been changed.";
10 }
11 ?>
输出:
view sourceprint?
1 The file is ok.

阅读全文

与php计算文件的md5相关的资料

热点内容
云服务器建设原理 浏览:256
javajunit4for 浏览:845
华为服务器如何进阵列卡配置 浏览:435
apache服务器ip地址访问 浏览:718
如何买到安卓手机预装软件 浏览:537
冤罪百度云不要压缩 浏览:86
苏州云存储服务器 浏览:173
解压收纳原声 浏览:384
java注册验证 浏览:375
火花app怎么上推荐 浏览:980
什么app能游戏投屏到电视上 浏览:455
服务器托管到云端是什么意思 浏览:835
app保存草稿怎么用 浏览:808
安卓如何进入proumb 浏览:144
主机虚拟云服务器 浏览:619
删除分区加密的空间会不会恢复 浏览:706
京东app客户上门怎么看搜索量 浏览:741
怎么在农行app购买黄金 浏览:46
c型开发板和单片机 浏览:146
虚拟机建立用户的模板文件夹 浏览:905