Gravatar 重大变化: 使用sha256作为哈希算法
在2024年的年初,Gravatar神不知鬼不觉的更新了他们的文档,宣布正式支持并默认使用sha256作为其电子邮箱的哈希算法。

而同公司的产品WordPress也很快跟进:宣布从6.8版本开始使用sha256获取头像。
链接:https://core.trac.wordpress.org/ticket/60638

历史
这里简要说明Gravatar和安全人员的爱恨情仇,直接看如何修改请见:用法。
从2007年正式对外提供服务起,作为全球最大的头像avatar提供商的Gravatar,多年来一直使用md5来生成电子邮箱的哈希来提供头像,虽然概率很小,但是md5的不安全性已经多次被各种大型机构和企业证明过了。
根据生日悖论,md5被破解的概率在现代计算机的速度加持下还是非常快的。

包括相比之下还算安全一些的sha1算法,也被Google在2017年成功实现哈希冲突而破解(虽然个人破解概率不大,但是大家可以看看,尤其是在AI对硬件的需求下,大规模超算越来越普及,此类算法只会越来越不安全)

sha1在约110块GPU加持下使用shattered攻击只需1年便可破解(这是2017的数据,现在只会更快),而md5只需一台手机cpu就能在1分钟内完成破解。
尽管如此,Gravatar还是雷打不动,坚持使用md5生成email哈希。
终于,在2020年安全研究人员警告Gravatar已经存在可行的方式能大量盗取哈希前的用户电子邮箱,却仍遭到Gravatar无视后,黑客开始在暗网出售约1.67亿份包含Gravatar用户姓名,用户名,邮箱和其哈希值的文档。
终于,Gravatar才开始考虑引入更加安全的哈希算法来提供avatar。
终终于,在4年的艰苦debug(比我还咕)后,Gravatar终于支持了sha256。。。
用法
php(最好的语言?):
从原来的
$email = trim( '[email protected] ' ); // '[email protected]' $email = strtolower( $email ); // '[email protected]' echo md5( $email );
修改为
$email = trim( '[email protected] ' ); // '[email protected]' $email = strtolower( $email ); // '[email protected]' echo hash( 'sha256', $email );
即可。
其他语言:
python:
import hashlib email = "[email protected]".strip().lower() sha256_hash = hashlib.sha256(email.encode()).hexdigest() print(sha256_hash)
谢谢大家的阅读!!!!!也欢迎大家使用TomsProject提供的TPAvatar:https://avatar.projectoms.com
版权声明:
作者:Toms Project
链接:https://blog.projectoms.com/pages/1477.html
来源:Toms Project 官方博客
文章版权归作者所有,未经允许请勿转载。


共有 0 条评论