java-计算g SHA 256错误

我需要为我的密码计算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/

但是我需要根据我的代码进行计算.

您的帮助是令人赞赏和可爱的.

解决方法:

从Javadoc中获取digest():

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

调用一次digest(),然后将结果放入变量中.

(顺便说一句,如果您搜索摘要,那么只要获得固定结果,这总是一个好主意,您会发现这是空字符串的SHA-256摘要.)

上一篇:docker 学习操作记录 3


下一篇:java-使用MessageDigest SHA-256的POI XSSF / XLSX哈希不确定性