从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

如果有人有任何技巧的话,我还需要在其他两种编程语言中获得同等的东西。谢谢

几个想法:

  • 许多功能在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在那里提供帮助。

最新更新