如果我做:
<?php echo md5(file_get_contents("/path/to/file")) ?>
...这将始终产生相同的哈希:
<?php echo md5_file("/path/to/file") ?>
如何在不将整个文件加载到内存中的情况下,逐个读取任意文件并逐个处理(意味着逐字节或其他一些可提供最佳读取性能的块大小)?处理的一个示例是生成文件的MD5哈希,尽管答案可以应用于任何操作.
我想拥有或写这个,但如果我能获得现有代码也会很棒.
(C#)
我目前md5_file()用来运行大约15个URL并验证他们的MD5哈希值.有没有办法让我更快?贯穿所有这些需要太长时间.
我如何计算进程打开或使用的文件的MD5哈希值?
文件可以是txt或exe
我当前的代码返回错误的exe,因为它正在运行
这是我目前的代码
public static string GetMd5HashFromFile(string fileName)
{
    FileStream file = new FileStream(fileName, FileMode.Open);
    MD5 md5 = new MD5CryptoServiceProvider();
    byte[] retVal = md5.ComputeHash(file);
    file.Close();
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < retVal.Length; i++)
    {
        sb.Append(retVal[i].ToString("x2"));
    }
    return sb.ToString();
}
干杯.
我在服务器上有几个文件需要从a下载ansible playbook,但因为连接很有可能中断我想在下载后检查它们的完整性.
我正在考虑两种方法:
file.extension和file.extension.md5.第一种方法引入了维护md5s的开销.因此,每当有人添加新文件时,他需要确保将md5添加到正确的位置.
但作为一个优势,有一个解决方案,使用内置的get_url行动检查与结合checksum=md5.例如:
action: get_url: url=http://example.com/path/file.conf dest=/etc/foo.conf checksum=md5:66dffb5228a211e61d6d7ef4a86f5758
在第二个方法是更优雅和缩小的责任.当有人在服务器上添加新文件时,他会确保添加该文件.md5,甚至不需要使用ansible playbooks.
有没有办法使用该checksum方法匹配文件中的md5?
我们可能会注意到许多下载站点提供了md5字符串.例如,当我下载ABC.zip时,还有一个md5字符串,如:" 2743a6a9fe6f873df1c7ed8ac91df5d7 *ABC.zip".我知道它背后的想法,它是防止文件伪造的摘要算法.
我的问题是用户如何计算ABC.zip的 md5字符串,并将其与网站提供的值进行比较?任何现有工具生成md5字符串?
我使用php创建了数百个文件夹和文本文件,然后将它们添加到zip存档中.
这一切都很好但如果我使用相同的文件夹和文件创建另一个zip存档,新存档将与第一个存档具有不同的哈希.如果我使用winrar而不是php来创建存档,这是相同的.
当我压缩我通过php创建的文件时,它似乎只显示不同的哈希值,但它们打开正常.
很奇怪有人对此有所了解吗?
谢谢
是否可以.zip在Java中为文件生成MD5哈希?我发现的所有示例都是针对.txt文件的。
我想知道何时解压缩数据,编辑文件,再次压缩并找到哈希,它是否会与原始文件不同?
我有一个 NW.js 应用程序,它可以简单地(递归地)扫描目录树并获取每个文件/目录的统计信息。它还对文件执行 MD5。
我有 29k 个文件、850 个文件夹,全部用于 120GB 数据。
大约 7 分钟后,我的代码在 29k 个文件中只扫描了 4080 个文件。
怎么可能这么慢??我可以做些什么来提高性能吗?否则,Node 对我来说就没用了......
令人惊讶的是,扫描 1k 个文件“仅”花费了 7 秒。为什么只扫描 4 倍的文件却要花 60 倍的时间?
当我检查进程时,我可以看到 Node 的 RAM 使用量发生了很大变化:从 20MB 到 400MB(双向波动)。但CPU使用率一直停留在1%。
这很奇怪,因为我认为我没有分配那么多内存。事实上,我什么也没分配!请参阅下面我的代码。
if (process.argv.length < 3)
    process.exit();
var fs = require('fs');
var md5 = require('md5');
var md5File = require('md5-file');
var iTotal = 0;
var iNbFiles = 0;
var iNbFolders = 0;
var iBegin = Date.now();
var App =
{
    scan: function(path)
    {
        var items = …这是我的问题代码:
$theurl = trim($_POST['url']);
    $md5file = md5_file($theurl);
        if ($md5file != '96a0cec80eb773687ca28840ecc67ca1') { echo 'Hash doesn\'t match. Incorrect file. Reupload it and try again'; 
当我运行此脚本时,它甚至不输出错误.它就停止了.它加载了一点,然后就停止了.
在脚本的下面我再次实现它,它也在这里失败了:
while($row=mysql_fetch_array($execquery, MYSQL_ASSOC)){
$hash = @md5_file($row['url']);
$url = $row['url'];
mysql_query("UPDATE urls SET hash='" . $hash . "' WHERE url='" . $url . "'") or die("There was a problem: ".mysql_error());
        if ($hash != '96a0cec80eb773687ca28840ecc67ca1'){
            $status = 'down';
            }else{
            $status = 'up';
            }
mysql_query("UPDATE urls SET status='" . $status . "' WHERE url='" . $url . "'") or …