如何在Windows命令行中生成字符串的SHA256哈希值
如何在Windows命令行中生成字符串的SHA256哈希值
我太懂这种跨平台的烦恼了!作为Mac用户习惯了一行echo -n "foobar" | shasum -a 256搞定的事,Windows CMD确实没直接提供字符串哈希的原生命令,但咱们可以用系统自带的CertUtil绕个小弯解决,完全不用装任何第三方工具或额外批处理文件。
核心思路是:把目标字符串写入一个临时文件(注意要和Mac的echo -n一样,不自动添加换行符),然后用CertUtil计算这个临时文件的哈希,最后删掉临时文件就行。
具体步骤(以生成"foobar"的SHA256哈希为例):
- 先定义要哈希的字符串,并用无换行的方式写入临时文件:
set "input=foobar" echo|set /p="%input%" > temp.txt
这里echo|set /p的作用就是输出字符串但不添加换行符,和Mac的echo -n效果完全一致,保证哈希结果和Mac端一致。
- 用CertUtil计算临时文件的SHA256哈希:
CertUtil -hashfile temp.txt SHA256
- 最后删除临时文件:
del temp.txt
一键执行的合并命令:
如果想直接一行搞定,过滤掉CertUtil输出的多余信息(比如说明行和空行),可以用这个:
set "input=foobar" && echo|set /p="%input%" > temp.txt && CertUtil -hashfile temp.txt SHA256 | findstr /v ":" && del temp.txt
执行后会直接输出纯哈希值:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2,和Mac端的结果完全匹配。
这个方法全程用Windows自带工具,不用额外安装任何东西,你的Windows开发者同事直接复制命令就能用啦!
备注:内容来源于stack exchange,提问作者Michael Oryl
相关产品推荐
相关产品推荐

