首页 > 解决方案 > 从此 sha-1 文件中获取 sha-256

问题描述

嗨,只是想知道是否有人可以帮助我?我有一段代码可以锻炼文件夹的 Sha-1,但需要将其转换为 sha-256。

function Get-FolderHash ($folder) {
 dir $folder -Recurse | ?{!$_.psiscontainer} | %{[Byte[]]$contents += [System.IO.File]::ReadAllBytes($_.fullname)}
 $hasher = [System.Security.Cryptography.SHA1]::Create()
 [string]::Join("",$($hasher.ComputeHash($contents) | %{"{0:x2}" -f $_}))
}

Get-FolderHash out

如果有人有任何提示,我还需要获得其他 2 种编程语言的等价物。谢谢

标签: powershell

解决方案


一些想法:

  • 其中很多在 PowerShell 中原生可用(例如使用Get-FileHash
  • 我建议不要对语言结构使用“简短形式”——即使用where代替?foreach代替%. PSScriptAnalyzer 更加严格,建议使用更详细Where-Object的形式,这也是一个选项。

您可以将 SHA-256 指定为 Get-FileHash 的算法。

这是一个涵盖 PowerShell 中上述要点的示例

function Get-FolderHash ($folder) {
  Get-ChildItem $folder -Recurse | Where {!$_.PSIsContainer} | ForEach {
    Get-FileHash -Algorithm SHA256 "$($_.FullName)" | Select Hash, Path
  }
}

这将输出一个表格,显示计算的哈希值和路径。

我会让其他更熟悉 Python 和 Java 的人在那里提供帮助。


推荐阅读