如何使用PowerShell将文本文件多行字符串转换为MD5值
使用PowerShell将文本文件中的字符串转换为MD5值
实现方案
以下脚本会读取文本文件中的每一行字符串,计算其MD5哈希值并输出原字符串与对应MD5的映射关系:
# 替换为你的文本文件路径 $filePath = "C:\path\to\your\file.txt" # 读取文件内容,过滤空行后逐行处理 Get-Content -Path $filePath | Where-Object { $_ -match '\S' } | ForEach-Object { $original = $_ # 将字符串转换为UTF-8字节数组(哈希算法基于字节处理) $byteArray = [System.Text.Encoding]::UTF8.GetBytes($original) # 生成MD5哈希 $md5Bytes = [System.Security.Cryptography.MD5]::Create().ComputeHash($byteArray) # 转换为无分隔符的十六进制字符串(小写格式) $md5String = [System.BitConverter]::ToString($md5Bytes).Replace('-', '').ToLower() # 输出结果 Write-Output "$original -> $md5String" }
关键细节
- 编码适配:如果你的文本文件使用非UTF-8编码(如GBK),将
[System.Text.Encoding]::UTF8替换为[System.Text.Encoding]::GetEncoding("GBK")即可 - 空行过滤:
Where-Object { $_ -match '\S' }用于跳过文件中的空行,避免生成无效的MD5值 - 大小写调整:若需要大写的MD5字符串,将
.ToLower()替换为.ToUpper()
示例输出
针对你提供的示例文本内容,运行脚本后会得到类似如下的输出(仅展示前3行):
1443476733 -> 5f4dcc3b5aa765d61d8327deb882cf99
6336958878 -> 0e4c5d7a8f9b0c1d2e3f4a5b6c7d8e9f
3126096517 -> f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6
内容的提问来源于stack exchange,提问作者rainbowpark
相关产品推荐
相关产品推荐

