HTTP摘要MD5密码生成实现
public class DigestUtil {
public static void main(String[] args) {
System.out.println(encodePasswordInA1Format("stevex","com.stevex.demo","stevex"));
}
static String encodePasswordInA1Format(String username, String realm, String password) {
String a1 = username + ":" + realm + ":" + password;
return md5Hex(a1);
}
static String md5Hex(String data) {
MessageDigest digest;
try {
digest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("No MD5 algorithm available!");
}
return new String(Hex.encode(digest.digest(data.getBytes())));
}
}
3. 小结
摘要访问认证有意成为一个安全性的折衷,它意图代替非加密的HTTP基本认证,但是它没有被设计为替换强认证协议,实际使用也不多。
当然HTTP摘要认证也是需要浏览器支持的,弹出的验证窗口来自浏览器而非应用提供,经过测试,个人感觉Firefox支持比Chrome好。
Spring Security 学习之HTTP基本认证和HTTP摘要认证相关文件下载:
具体下载目录在 /2014年资料/2月/28日/Spring Security 学习之HTTP基本认证和HTTP摘要认证