BCrypt
BCryptは一方向暗号化です.
Spring Bootでは、主にBCryptと書かれたPasswordEncoderを使用しています.
あまり気を使わずに書いていたら、急にそう思った.
Saltはどこですか?
検索結果は、毎回異なるSaltが使用されていることを示します.
だから私はSaltにどこにいるか聞いた.
Spring SecurityのCryptPasswordEncoderを次のように取り外します.
スプリングの中で普通?デフォルト?強度は10で、BRCryptバージョンでは主に2 aが使用されています.
実はスプリングだけでなく、基本的には10回も散らばっています.(まだ?)
encodeメソッド内でgensaltを見つけることができます.
ではgensaltは?
Encode base 64はsaltをbase 64に変換することである.
要するに,符号化を行う過程で,毎回saltがランダムに生成されることが分かる.
saltはbase 64として符号化され、暗号化文字列の前に貼り付けられ、保存される.
$2a$10$salt...
コメント.ハッシュ値をsaltの後ろに再貼り付けて格納します.
そんなに難しい概念ではありませんが、あまりにも無知です.
まだ完璧ではないようですが:(
Spring Bootでは、主にBCryptと書かれたPasswordEncoderを使用しています.
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
@Autowired
PasswordEncoder passwordEncoder;
String encrypted = passwordEncoder.encode(rawPassword);
Boolean isSuccess = passwordEncoder.matches(rawPassword, encrypted);
log.info("Encrypted String is {}", encrypted);
$2a$10$3H3bk6hpbA8sUbrkGu8/JesQqyLXq4FgGq003CUQmvzBTbfEz0KLu
以上のように、多くの作業が行われます.あまり気を使わずに書いていたら、急にそう思った.
Saltはどこですか?
検索結果は、毎回異なるSaltが使用されていることを示します.
だから私はSaltにどこにいるか聞いた.
Spring SecurityのCryptPasswordEncoderを次のように取り外します.
スプリングの中で普通?デフォルト?強度は10で、BRCryptバージョンでは主に2 aが使用されています.
実はスプリングだけでなく、基本的には10回も散らばっています.(まだ?)
encodeメソッド内でgensaltを見つけることができます.
ではgensaltは?
Encode base 64はsaltをbase 64に変換することである.
要するに,符号化を行う過程で,毎回saltがランダムに生成されることが分かる.
saltはbase 64として符号化され、暗号化文字列の前に貼り付けられ、保存される.
$2a$10$salt...
コメント.ハッシュ値をsaltの後ろに再貼り付けて格納します.
そんなに難しい概念ではありませんが、あまりにも無知です.
まだ完璧ではないようですが:(
Reference
この問題について(BCrypt), 我々は、より多くの情報をここで見つけました https://velog.io/@hyeop617/BCryptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol