クラス Md4PasswordEncoder
java.lang.ObjectSE
org.springframework.security.crypto.password.AbstractValidatingPasswordEncoder
org.springframework.security.crypto.password.Md4PasswordEncoder
- 実装されているすべてのインターフェース:
PasswordEncoder
使用すべきではありません。
この
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
コンストラクターの概要
コンストラクター方法の概要
修飾子と型メソッド説明encodeNonNullPassword(StringSE rawPassword) 使用すべきではありません。MessageDigest を使用して rawPass をエンコードします。protected booleanmatchesNonNull(StringSE rawPassword, StringSE encodedPassword) 使用すべきではありません。以前にエンコードされたパスワードを取得し、ソルトを混合してその値をエンコードした後、それを rawpassword と比較しますvoidsetEncodeHashAsBase64(boolean encodeHashAsBase64) 使用すべきではありません。クラス org.springframework.security.crypto.password.AbstractValidatingPasswordEncoder から継承されたメソッド
encode, matches, upgradeEncoding, upgradeEncodingNonNull
コンストラクターの詳細
Md4PasswordEncoder
public Md4PasswordEncoder()使用すべきではありません。
メソッドの詳細
setEncodeHashAsBase64
public void setEncodeHashAsBase64(boolean encodeHashAsBase64) 使用すべきではありません。encodeNonNullPassword
使用すべきではありません。MessageDigest を使用して rawPass をエンコードします。ソルトが指定されている場合は、エンコード前にパスワードと結合されます。- 次で指定:
- クラス
AbstractValidatingPasswordEncoderのencodeNonNullPassword - パラメーター:
rawPassword- プレーンテキストのパスワード- 戻り値:
- パスワードダイジェストの 16 進文字列(または encodeHashAsBase64 が有効な場合は base64 エンコード文字列)。
matchesNonNull
使用すべきではありません。以前にエンコードされたパスワードを取得し、ソルトを混合してその値をエンコードした後、それを rawpassword と比較します- 次で指定:
- クラス
AbstractValidatingPasswordEncoderのmatchesNonNull - パラメーター:
rawPassword- プレーンテキストのパスワードencodedPassword- 以前にエンコードされたパスワード- 戻り値:
- 正しいか間違っているか
DelegatingPasswordEncoderを使用することをお勧めします。このサポートを削除する予定はありません。これはレガシー実装であり、それを使用することは安全でないと見なされることを示すために非推奨です。