java - 计算 SHA 256 时出错

标签 java hash sha256

我需要为我的密码计算 SHA 256。

我已经知道我可以使用 apache 的通用编解码器,但这在我工作的地方是不允许的

我尝试制作一个简单的函数来从纯文本返回 sha 256,即:

public static String getSHA1(String plainText) {
        MessageDigest md;
        try {
            md = MessageDigest.getInstance("SHA-256");

            md.update(plainText.getBytes());
            StringBuffer hexString = new StringBuffer();
            for (int i = 0; i < md.digest().length; i++) {
                hexString.append(Integer.toHexString(0xFF & md.digest()[i]));
            }
            return hexString.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

我的问题是无论输入是什么,结果都是一样的。我总是得到这个结果

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

我可以使用这个网站在线计算 sha 256 http://onlinemd5.com/

但我需要从我的代码中计算它。

感谢您的帮助。

最佳答案

来自 digest() 的 Javadoc:

Completes the hash computation by performing final operations such as padding. The digest is reset after this call is made.

调用一次digest()并将结果放入一个变量。

(顺便说一下,如果您搜索了摘要,只要您得到固定结果,这总是一个好主意,您就会看到它是空字符串的 SHA-256 摘要。)

关于java - 计算 SHA 256 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20628346/

相关文章:

java - 从 EJB 拦截器中抛出异常

java - 在 JVMTI 中重新定义类

java - Tomcat 8.5 JDBC Realm 带有摘要加盐密码 : authentication fails

javascript - 如何在 javascript 中的文件(二进制文件,如图像)上使用 Sha256?

python - 使用 M2Crypto 在 Python 2.4 中生成 SHA-256 哈希

java - 帮助将插件添加到 Java ImageWriter

java - 对于带有 anchor 的链接,HttpClient 出现 400 错误

c++ - HashMap 实现 : --- hashcode

perl - Perl散列是否应始终包含值?

c# - 为什么 SHA256 的所有变体都显示为 SHA256Managed?