沉默的广场在新品葱写过这样一篇:
【安全上网】用SHA-512生成身份字符串,在匿名环境下证明自己的身份
概述:
- 计算SHA512("something only you know")得到"D75A31E4F109C...",由于SHA512是不可逆的运算(类似MD5),所以即便"D75A31..."被公布出去,别人也猜不到"something only you know"。
- 把 "D75A31..." 贴到某个公开的地方,例如自己的账户备注中
- 现在你要向第三方证明 "D75A31..." 确实是你贴出的(你就是账户的主人),于是你出示 "something only you know" 给别人,别人运行一次SHA512("something..."),得到"D75A31...",证明原来贴出"D75A31..."的人是你。
存在的问题:
- 如果你公开贴出这行字("something..."),别人就可以截取复制这行字(直接看到或监听),再以别人的身份发出来。这样便可能导致多个人声称自己是你,无法确定哪个是真的。
- 如果你向某人私下出示这行字,而这个人将这行字发给其他人,其他人就可以声称自己是你
总结:SHA-512身份验证并不实用,没有意义。
真正安全可靠验证身份的方法,是公钥密码学。本站现已支持PGP签名登录,详情见/t/7506。