【发布时间】:2014-05-19 15:46:56
【问题描述】:
我正在尝试使用 sha 256 加密存储用户密码。我有以下加密密码的方法:
public static String hashPassword(String password) {
MessageDigest mdEnc = null;
try {
mdEnc = MessageDigest.getInstance("SHA-256");
} catch (NoSuchAlgorithmException e) {
return null;
}
mdEnc.update(password.getBytes(), 0, password.length());
return new BigInteger(1, mdEnc.digest()).toString(16);
}
我在我的安全域中声明了以下内容,但每次我尝试登录时,它都说凭据不正确。当我不使用加密并删除 hashAlgorithm 和 hashEncoding 属性并将密码明文存储时,身份验证工作正常。有人能看出我的加密方法有什么问题吗?
<module-option name="hashAlgorithm" value="SHA-256"/>
<module-option name="hashEncoding" value="base64"/>
我试图遵循一个具有简单加密方法的示例:
import org.jboss.security.auth.spi.Util;
public class PasswordGenerator {
public static void main(String[] args) {
for (String arg : args) {
System.out.println(new PasswordGenerator().generate(arg));
}
}
private String generate(String password) {
return Util.createPasswordHash("SHA-256", "BASE64", null, null,password);
}
}
问题是它说包含 Util 类的 jar 在 JBoss 安装的模块目录中,但它一定是一个较旧的示例,因为我没有看到它。
【问题讨论】:
标签: java encryption jboss sha256