2016-03-29 106 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 :(。 –