问题标签 [get-filehash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
358 浏览

python - 在 Minio 中获取对象的哈希值

有没有一种方法可以使用 python SDK 直接获取 Minio 对象的哈希(md5、sha 等)?是否可以在不请求文件的情况下获取哈希?

0 投票
0 回答
35 浏览

python - powershell filehash 有时与自定义文件哈希不同

我认为制作我自己的(可怕的)sha256 函数将是一个有趣的项目。我以最糟糕的方式做到了这一点——只使用包含'1'和'0'作为字符的字符串。

无论如何,我得到了它的工作,它可以散列“你好,世界”到预期值9ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b9ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b

所以接下来我尝试散列一个文件。testing.txt,包含单词'testing',也匹配windows powershell Get-FileHash testing.txt

然后我大胆地录制了一个 mp3 并尝试对其进行哈希处理,结果不一样了!

我尝试了什么:

  • 将 testing.txt 的文件名更改为 testing.mp3,从而产生匹配的哈希值
  • 散列各种不同的文件。它似乎在所有非文本文件上都失败了。

我读取文件的代码:

我怀疑 open(filename, 'rb') 不会让我读取文件的所有字节,而只是读取与文件内容相关的字节,而 windows 的 Get-FileHash 确实会散列文件的所有位。如果是这种情况,我将如何读取文件的完整二进制数据?

0 投票
1 回答
134 浏览

powershell - 有没有办法在 robocopy 脚本中包含带有变音符号的文件路径?

我有一个脚本,可以从目录中的每个文件中提取元数据。当文件路径没有变音符号时,脚本会生成一个如下所示的 csv 文件:

在此处输入图像描述

当文件路径包含变音符号(即“TéstMé.txt”)时,csv 文件的 filehash 字段中有空格:

在此处输入图像描述

我的问题是:无论文件路径中的变音符号如何,我如何让这个脚本工作?

  • 我已经确定问题不Get-FileHash在于脚本的一部分(当我运行单行时,Get-FileHash "C:\Temp\New\TéstMé.txt"会产生哈希。)
  • 我还确定替换FileHash = Get-FileHash -PathFileHash = Get-FileHash -LiteralPath不是解决方案,因为它也会产生空白。
  • 我试图更改该行($_.Trim() -match "^(?<Children>\d+)\s+(?<FullName>.*)") {中的正则表达式以防它阻塞变音符号,但任何更改都会带来WARNING: parsing [unique parsing error here].
  • 我还尝试从更改ValueFromPipeline=$True,ValueFromPipelineByPropertyName=$True$true$false以防管道正在更改文件路径值),但这没有任何效果。
  • 我想也许 Robocopy(在脚本中使用)无法处理带有变音符号Robocopy C:\Temp\New C:\Temp\star的文件,但可以很好地移动文件。
  • 我确实有一个用于识别非法字符的正则表达式(从这里获得),但我不知道如何将其合并到脚本中。
  • 仅供参考:我无法更改实际的文件名。很想对任何带有变音符号的字母进行查找和替换,但这个选项对我不开放。
0 投票
2 回答
217 浏览

powershell - 在 Windows 上重新创建 linux md5 校验和

我正在我们的 linux 机器上执行一些非常简单的校验和,但我现在需要为我们的 Windows 用户重新创建类似的东西。为了给我一个校验和,我只运行:

我正在努力在 Windows 中使用批处理文件或 Powershell 重新创建它。我得到的最接近的是:

这会将每个文件的校验和结果与 linux 命令打印到控制台相同,但是通过管道将其返回到 Get-FileHash 以获得与 linux 等效项匹配的单个输出,这让我望而却步。写入文件让我陷入了回车差异

作为字符串流回 Get-FileHash 不会返回相同的校验和:

我是否过度设计了这个?我相信这不应该这么复杂!TIA