データベースパスワード暗号化処理

1. MD5&ソルト&BCrybt

MD5 および MD5 ソルト値暗号化
 メッセージ ダイジェスト アルゴリズム 5、メッセージ ダイジェスト アルゴリズム:

  • 圧縮率: データの長さに関係なく、計算された MD5 値の長さは固定されます。
  • 簡単な計算:元のデータからMD5値を簡単に計算できます。
  • アンチモディフィケーション: 元のデータに何らかの変更が加えられた場合、たとえ 1 バイトだけが変更されたとしても、結果の MD5 値は大きく異なります。とてもむずかしいです

塩で:

  • 生成された乱数と MD5 で生成された文字列を組み合わせる
  • データベースには MD5 値とソルト値が同時に保存されます。正確性を検証する場合は、ソルトを使用して MD5 を実行します。
    @Test
    public void test01(){
//        String s= DigestUtils.md5Hex("123456");
//        String s1= Md5Crypt.md5Crypt("123456".getBytes(),"$1$qqqqqq");
        BCryptPasswordEncoder passwordEncoder=new BCryptPasswordEncoder();
        String encode=passwordEncoder.encode("123456");
        boolean matches=passwordEncoder.matches("123456","$2a$10$1wj4ZKm2khXSP7KVB3Efp.lQHXLtSZcLpbOLjhvukypPaW9vqs6Cq");
        System.out.println(encode);
        System.out.println(matches);
//        System.out.println(s);
//        System.out.println(s1);
    }

上記のコードによれば、このコード行を使用して暗号化、つまりユーザー データをデータベースに保存するときに使用できます。

String encode=passwordEncoder.encode("123456");

ログインする必要がある場合は、次のコード行を使用して復号化できます。

boolean matches=passwordEncoder.matches("123456","$2a$10$1wj4ZKm2khXSP7KVB3Efp.lQHXLtSZcLpbOLjhvukypPaW9vqs6Cq");

今後も随時更新していきます。ラララああ。

おすすめ

転載: blog.csdn.net/Hubery_sky/article/details/131868359
おすすめ