如何解密SHA-256加密字符串?

屁股:

我有一个使用以下方法编码的字符串,有没有办法将此字符串解码回其原始值?谢谢。

public synchronized String encode(String password)
        throws NoSuchAlgorithmException, IOException {

    String encodedPassword = null;
    byte[] salt = base64ToByte(saltChars);

    MessageDigest digest = MessageDigest.getInstance("SHA-256");
    digest.reset();
    digest.update(salt);

    byte[] btPass = digest.digest(password.getBytes("UTF-8"));
    for (int i = 0; i < ITERATION_COUNT; i++) {
        digest.reset();
        btPass = digest.digest(btPass);
    }

    encodedPassword = byteToBase64(btPass);     
    return encodedPassword;
}

private byte[] base64ToByte(String str) throws IOException {

    BASE64Decoder decoder = new BASE64Decoder();
    byte[] returnbyteArray = decoder.decodeBuffer(str);

    return returnbyteArray;
}

private String byteToBase64(byte[] bt) {

    BASE64Encoder endecoder = new BASE64Encoder();
    String returnString = endecoder.encode(bt);

    return returnString;
}
布伦丹·朗(Brendan Long):

SHA-256是一种加密(单向)哈希函数,因此没有直接的方法对其进行解码。加密哈希函数的全部目的是您不能撤消它。

您可以做的一件事是蛮力策略您可以在其中猜测要进行哈希处理的内容,然后使用相同的函数对其进行哈希处理,看看是否匹配。除非很容易猜测散列数据,否则可能要花很长时间

您可能会发现有趣的问题“ 哈希密码和加密密码之间的区别 ”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章