クラス Md4PasswordEncoder

java.lang.ObjectSE
org.springframework.security.crypto.password.Md4PasswordEncoder
実装されたすべてのインターフェース:
PasswordEncoder

@DeprecatedSE public class Md4PasswordEncoder extends ObjectSE implements PasswordEncoder
使用すべきではありません。
ダイジェストベースのパスワードエンコーディングは安全とは見なされません。代わりに、BCryptPasswordEncoder、Pbkdf2PasswordEncoder、SCryptPasswordEncoder などの適応型一方向関数を使用してください。パスワードのアップグレードをサポートする DelegatingPasswordEncoder を使用することをお勧めします。このサポートを削除する予定はありません。これはレガシー実装であり、それを使用することは安全でないと見なされることを示すために非推奨です。
この PasswordEncoder はレガシー目的でのみ提供されており、安全とは見なされていません。MD4 を使用してパスワードをエンコードします。パスワードの一般的な形式は次のとおりです。
 s = salt == null ? "" : "{" + salt + "}"
 s + md4(password + s)
 
"salt" はソルト、md4 はダイジェストメソッド、password は実際のパスワードです。たとえば、"password" のパスワードと "thisissalt" のソルトを使用します。
 String s = salt == null ? "" : "{" + salt + "}";
 s + md4(password + s)
 "{thisissalt}" + md4(password + "{thisissalt}")
 "{thisissalt}6cc7924dad12ade79dfb99e424f25260"
 
ソルトが存在しない場合は、次のように "{salt}" を省略します。
 md4(password)
 
ソルトが空の文字列の場合は、次のように "{}" のみを使用します。
 "{}" + md4(password + "{}")
 
このフォーマットは、Spring Security コアモジュールで見つかった Md4PasswordEncoder で動作することを目的としています。ただし、この API はソルトを内部的に提供するのでなく、ユーザーの責任にするため、パスワードにソルトを含めてパスワードを移行する必要があります。SaltSource からパスワードを移行するには、以下を使用します。
 String salt = saltSource.getSalt(user);
 String s = salt == null ? null : "{" + salt + "}";
 String migratedPassword = s + user.getPassword();
 
導入:
5.0
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    使用すべきではありません。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    encode(CharSequenceSE rawPassword)
    使用すべきではありません。
    MessageDigest を使用して rawPass をエンコードします。
    boolean
    matches(CharSequenceSE rawPassword, StringSE encodedPassword)
    使用すべきではありません。
    以前にエンコードされたパスワードを取得し、ソルトを混合してその値をエンコードした後、それを rawpassword と比較します
    void
    setEncodeHashAsBase64(boolean encodeHashAsBase64)
    使用すべきではありません。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE

    インターフェース org.springframework.security.crypto.password.PasswordEncoder から継承されたメソッド

    upgradeEncoding
  • コンストラクターの詳細

    • Md4PasswordEncoder

      public Md4PasswordEncoder()
      使用すべきではありません。
  • メソッドの詳細

    • setEncodeHashAsBase64

      public void setEncodeHashAsBase64(boolean encodeHashAsBase64)
      使用すべきではありません。
    • encode

      public StringSE encode(CharSequenceSE rawPassword)
      使用すべきではありません。
      MessageDigest を使用して rawPass をエンコードします。salt が指定されている場合、エンコードの前にパスワードとマージされます。
      次で指定:
      インターフェース PasswordEncoderencode 
      パラメーター:
      rawPassword - プレーンテキストのパスワード
      戻り値:
      パスワードダイジェストの 16 進文字列(または encodeHashAsBase64 が有効な場合は base64 エンコード文字列)。
    • matches

      public boolean matches(CharSequenceSE rawPassword, StringSE encodedPassword)
      使用すべきではありません。
      以前にエンコードされたパスワードを取得し、ソルトを混合してその値をエンコードした後、それを rawpassword と比較します
      次で指定:
      インターフェース PasswordEncodermatches 
      パラメーター:
      rawPassword - プレーンテキストのパスワード
      encodedPassword - 以前にエンコードされたパスワード
      戻り値:
      正しいか間違っているか