如何将 Windows 中文件夹内的每个文件(SHA256 和 MD5)的哈希导出为 CSV?

How to export to CSV the Hash of each file (SHA-256 & MD5) that are inside a folder in Windows?

我从客户端接收文件,我需要确保这些文件在我处理完这些文件后仍是健康的。 我要提防的是可能篡改已处理文件的情况。 发送缺少信息的文件可能会发生客户错误,并且客户想要编辑原始文件以说明信息存在。 这就是为什么我想用接收目录中这些文件的哈希值生成报告的原因。 尽管我不会说英语,但我努力让一切更清晰易懂。

场景 1: 我有一个包含多个文本文件的目录,我需要将每个文件的 SHA-256 和 MD5 哈希计算导出到某处的 CSV。

场景 2: 我有一个目录,其中包含几个带有客户名称的子文件夹,在这些客户中还有其他子文件夹。如何从这些目录和子目录中的所有文件中提取 SHA-256 和 MD5 哈希值?

像下面这样的内容应该可以帮助您入门。这会找到当前目录(不包括子目录)内每个文件的 SHA256 哈希值

Get-ChildItem | Get-FileHash | Export-CSV -Path "C:\Temp\summary.csv"  
PS C:\Users\Jan\Dropbox\py\advent_of_code> cat "C:\Temp\summary.csv"
#TYPE Microsoft.Powershell.Utility.FileHash
"Algorithm","Hash","Path"
"SHA256","8E8FF02948E62C54EF782373500CD0D97B8A2DA0F1655A6134B37284CF5BCE79","C:\Users\Jan\Dropbox\py\advent_of_code191201.in"
"SHA256","63E68322B7E8131CDDEFB77492EC7E1B8B8C46696772CE561850C854E4E8B6EA","C:\Users\Jan\Dropbox\py\advent_of_code191201.py"
"SHA256","FFF1D3F7F7FBDDC4CDC90E123D9BC7B0B7A450DC28F3A4F2D786701B4A9B279D","C:\Users\Jan\Dropbox\py\advent_of_code191204.py"
"SHA256","DE3662893F2779446AFC78B20E63F5250826D5F52206E5718E1A2713F876941E","C:\Users\Jan\Dropbox\py\advent_of_code191206.in"
"SHA256","B9381E11A442DDC8CF802F337F0487E9269800B145106FFDDB0E6472D8C6F129","C:\Users\Jan\Dropbox\py\advent_of_code191206.py"    

如果您确实需要 SHA256 和 MD5:

$h = @(Get-ChildItem | Get-FileHash)
$h2 = ($h | Get-Item | Get-FileHash -Algorithm MD5)  
for ($i=0; $i -lt $h.Length; $i++) { 
    $h[$i] = [PSCustomObject]@{Path=$h[$i].Path; SHA256=$h[$i].Hash; MD5=$h2[$i].Hash} 
}
$h | Export-Csv "C:\Temp\expo.txt" 
PS C:\Users\Jan\Dropbox\py\advent_of_code> cat "C:\Temp\expo.txt"
#TYPE System.Management.Automation.PSCustomObject
"Path","SHA256","MD5"
"C:\Users\Jan\Dropbox\py\advent_of_code191201.in","8E8FF02948E62C54EF782373500CD0D97B8A2DA0F1655A6134B37284CF5BCE79","11689BA3058C306DAA3651562621BE20"
"C:\Users\Jan\Dropbox\py\advent_of_code191201.py","63E68322B7E8131CDDEFB77492EC7E1B8B8C46696772CE561850C854E4E8B6EA","3F50E29C797ED4BD65122F8DA1208D4D"
"C:\Users\Jan\Dropbox\py\advent_of_code191204.py","FFF1D3F7F7FBDDC4CDC90E123D9BC7B0B7A450DC28F3A4F2D786701B4A9B279D","41094A3E067669F46C965D0E34EA5CA6"
"C:\Users\Jan\Dropbox\py\advent_of_code191206.in","DE3662893F2779446AFC78B20E63F5250826D5F52206E5718E1A2713F876941E","1A7571873E6B9430A2BFD846CA0B8AB7"
"C:\Users\Jan\Dropbox\py\advent_of_code191206.py","B9381E11A442DDC8CF802F337F0487E9269800B145106FFDDB0E6472D8C6F129","0CBB058D315944B7B5183E33FC780A4D"