2016-03-29 55 views
1

java BCryptPasswordEncodermysql中是否有任何等效函数或功能?Java在MySQL中相当于BCryptPasswordEncoder

在java中:

BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); 
String hashedPassword = passwordEncoder.encode("asdf"); 

结果:hashedPassword = $2a$10$3IbqODV77Xrnga.LiiDaP.Oh5te4umnWstbwM3sx1eSMOqEVoxupe

我怎样才能在MySQL字符串asdf相同的加密值?

以下是我在MySQL中做出的一些失败尝试。

SELECT MD5('asdf');

SELECT SHA1('asdf');

回答

1

你要找的功能是ENCRYPT(str, salt)。还有一些注意事项,但:

  • 它仅适用于Unix的地方glibc的功能crypt()可用(它不工作在Windows上)Linux支持Bcrypt(实际上,大部分的唐
  • 并非所有的类型“T)

如果您使用的是Unix的,然后尝试这样的事情,看看你的MySQL安装支持它:

SELECT ENCRYPT('myPassword', CONCAT('$2a$', SUBSTRING(SHA(RAND()), -16))) 
+0

不幸的是,我使用的是Windows :(。 –