OpenAMのJDBC認証時にMD5パスワードを扱いたかったので作ったもの.探がしかたが悪かったのか,適当なものが見つからなかった.ClearTextTransform以外もはじめから用意しててくれればいいのに.
package com.sun.identity.authentication.modules.jdbc;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import com.sun.identity.authentication.spi.AuthLoginException;
public class MD5Transform implements JDBCPasswordSyntaxTransform {
public MD5Transform() {
}
@Override
public String transform(String input) throws AuthLoginException {
System.out.println(input);
String result = toMD5HexString(input);
result = result.trim();
System.out.println(result);
return result;
}
private String toMD5HexString(String source) {
StringBuilder sb = new StringBuilder();
MessageDigest md;
try {
md = MessageDigest.getInstance("MD5");
byte[] data = source.getBytes();
md.update(data);
byte[] digest = md.digest();
for (int i = 0; i < digest.length; i++) {
String hex = Integer.toHexString((int) 0x00FF & digest[i]);
if (hex.length() == 1)
{
sb.append("0");
}
sb.append(hex);
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return sb.toString();
}
}
セコメントをする