クラス Md4PasswordEncoder

実装されているすべてのインターフェース:
PasswordEncoder

@DeprecatedSE public class Md4PasswordEncoder extends AbstractValidatingPasswordEncoder
使用すべきではありません。
ダイジェストベースのパスワードエンコーディングは安全とは見なされません。代わりに、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
  • コンストラクターの詳細

    • Md4PasswordEncoder

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

    • setEncodeHashAsBase64

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

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

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