如何制作你自己的哈希字符串,兼谈对Windows的吐槽

哈希算法,也叫散列算法,指的是对一个字符串进行数学运算,得到一串一定长度的十六进制数字。这个过程是不可逆的,因为给定一个字符串,你可以得到一串确定的十六进制数字,而从一个十六进制数字得不到原始字符串。利用哈希算法的这个特性,你就可以自己造一个秘密字符串,公布你用的哈希算法和哈希后的结果。以后必要时,可以公布这个秘密字符串,让别人验证这个字符串是否能得到一致的结果。
哈希算法有很多种,主流的算法有MD5,SHA1,SHA2家族等等,我以下的示范采用SHA2家族里的SHA512算法,就算量子计算机出来了也无法破解
生成字符串的哈希是不需要额外安装软件的,主流的桌面操作系统都可以用系统自带软件完成。
你的秘密字符串里最好只有英文大小写字母、数字、英文标点、空格,准确一点说,就是ASCII值在32到126之间的字符,因为可使用的字符少了,所以这个字符串一定要长。
为什么不用Unicode(UTF-8)呢,待会儿再说。
MacOS:打开终端,输入
echo -n "<你的秘密字符串>" | shasum -a 512

就能得到哈希值。
Linux:打开终端,输入
echo -n "<你的秘密字符串>" | sha512sum

就能得到哈希值。
到这儿都没什么问题,在MacOS和Linux里,其实你的秘密字符串可以有中日韩文字、标点等Unicode字符,但为什么最好不要用呢?这就是我要吐槽Windows的地方。

Windows:打开记事本,输入你的秘密字符串,不要换行,保存为txt文件,编码选择ANSI,这时就可以打开命令提示符,输入
certutil -hashfile <文件路径> SHA512

得到哈希字符串。
比如保存在桌面,文件名叫string.txt,那么输入的是
certutil -hashfile %USERPROFILE%\Desktop\string.txt SHA512

麻烦了很多对吧?更麻烦的在后面:
1、此法只能用于Windows Vista及以后系统(Windows 7,Windows 8/8.1,Windows 10等等),Windows XP需要额外安装软件
2、你得到的哈希值每两位空一格,虽然没有影响,但是把本来就长的SHA512变得更长
3、记事本支持保存UTF-8,但会有个3字节的BOM头,真是蛋疼。想保存无BOM头的UTF-8,额外装软件吧

注意,这不是引战,只是指出Windows早期版本的不足之处。我Windows,MacOS,Linux都在用,不存在孰优孰劣,各有各的优势。

最后我给个警告:不要在线生成哈希!有可能会被记录,加入数据库。

测试一下。
The quick brown fox jumps over the lazy dog

的SHA512是:
07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6

本文标题使用UTF-8编码后的SHA512是:
72222d8cc83f2de57fefc65b630a145aa3f26c02a223b0ac4ba3e8e3ebadff6ce2f31ce782fea1792658b32a4b28b8c8c40e8d4293a969b982dc9e930fc2ba27
4
分享 2019-04-10

23 个评论

已删除
一个建议:
hexdigest 包裹在
[code]
[/code] 里。

Windows 的确不适合来搞这种事情。
尽量不安装第三方软件,Python也算
BBcode好恶心……
已删除
已删除
已删除
我知道用Python怎么算了:

python3
import hashlib
hashlib.sha512(b"The quick brown fox jumps over the lazy dog").hexdigest()
exit()

亲测可行
已删除
然而ao多像https://md5decrypt.net/
的网站也可以
1、我用的SHA512,他破解的是MD5,SHA512的速度比MD5慢多了
2、被哈希的内容可以用Unicode字符,只不过就是用Windows创建不方便罢了
3、秘密字符串一定要长
已删除
啊 我觉得你误解我的意思了 首先他不止解密MD5一个功能
<a href='https://postimg.cc/9rMdpYjK' target='_blank'><img src='https://i.postimg.cc/pXQsPscW/bildschirmfoto.jpg' border='0' alt='bildschirmfoto'/></a>
其次这只是一例,还有好多网站都能搞这个
图是这个
https://i.postimg.cc/pXQsPscW/bildschirmfoto.jpg
这个网上教程不是一大堆吗
当一个哈希算法本身未被破解时,唯一可以从哈希值反推回原始字符串的方法就是查表。然而我可没说我的秘密字符串里含有什么,有多少字符,建立表格也只能一点一点建,动辄上GB,TB。
我怀疑你究竟点开看那网站没有…我只是说有很多那一类的网站都可以实现encrypt,不知道你为什么这么纠结于decrypt…或许是因为那网站的域名叫md5decrypt罢…
在线encrypt会有安全方面的担心吧(你输入的明文都可能会被存入字典里)
哦抱歉,我一直以为你说的是所谓“解密”,我心想你SHA512怎么解密?
这么说的话,有两种网站,一种是用Javascript,服务器后台不记录信息。另一种是点“加密”后服务器来哈希,这时服务器十有八九会记录内容
那个网站确实会,但不是所有的网站都提供encrypt和decrypt,而且你可以加salt
这个网上教程不是一大堆吗

网上教程一大堆没错,但是本站很多计算机小白并不会主动去了解这些内容,并且写通俗易懂的教程也是一种很好的学习方式,费曼学习法。
Windows PowerShell 支持计算 hash 值:
Get-FileHash - Microsoft Docs
Windows PowerShell 支持计算 hash 值:

貌似win10已经默认使用powershell了,,,
cmd被淘汰了,,,

要发言请先登录注册

要发言请先登录注册

发起人

记住【反华不反共,反共不反习】。少割席,多做事。构建共识,形成组织。打倒共产党,建立新中国!

状态

  • 最新活动: 2020-05-16
  • 浏览: 4132