感触life

Java与PHP(Laravel) bcrypt加密算法兼容

首先尝试java与php分别生成密码

然后发现二者之间的区别在于字符串开头 $2a$ 与 $2y$。$2y$开头的是新版本的安全修复。Java仅支持$2a$。

解决方法很简单,看你要兼容哪边,我场景是java无人可改,所以只能兼容java那边

只需要把$2y$替换成$2a$即可

$pwd = str_replace("$2a$","$2y$",$pwd);

存表的密码是$2a$开头的,直接用php验证也是可以的,不需要再改回校验。

码字很辛苦,转载请注明来自感触life-博客《Java与PHP(Laravel) bcrypt加密算法兼容》

评论