我需要从php获得与使用Spring Security ShaPasswordEncoder对象的encodePassword方法获得的结果相同的值。
我没有权限修改相应的Java代码,所以php本身就可以解决这个问题。
Java代码:
ShaPasswordEncoder shaPasswordEncoder = new ShaPasswordEncoder(256);
shaPasswordEncoder.setIterations(1000);
String password = "123456789";
String salt = "123456";
String hash2 = shaPasswordEncoder.encodePassword(password, salt);
System.out.println(hash2);
我尝试了以下方法:
$password = "123456789";
$salt = "123456";
$hash = hash_pbkdf2('sha256', $password, $salt, 1000);
echo 'hash_pbkdf2 result : '.$hash.'<br>';
$out = $salt.$password;
for ($i = 0; $i < 1000; $i++) $out = hash('sha256', $out);
echo 'hash result : '.$out.'<br>';
Java结果:
9379d5a5fdd899cdf588b075988b9e94d2b3fe5cb44e593dd4a241f4757c8eec
php结果:
hash_pbkdf2 result : 2794f28c44aa958663637ebeed391b533854fb2f4b7b7d09f521de8c1fe5c6bb
hash result : b0782b680af7a13aeffc61006d2799d69ddc0465c33f376b40d946dd232f62ed
我想让php的结果值等于Java的结果值。我该怎么办?
汪汪一只猫
相关分类