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 官方博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录