解密SHA加密字符串

Gap*_*oos -3 java encryption sha

我使用上面的代码加密了一个字符串.

public String encrypt(String generatedKey)
    {
            try {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(generatedKey.getBytes("UTF-8"));
                byte digest[] = md.digest();
                return (new BASE64Encoder()).encode(digest);
            }
            catch (Exception e) {
                return null;
            }

    }
Run Code Online (Sandbox Code Playgroud)

同样,我需要一个代码来解密上面生成的代码.我怎样才能做到这一点?

Meh*_*taş 6

SHA是摘要算法,而不是加密算法.摘要值不可解密.这就是他们安全的原因.两个不同的输入可以给出相同的摘要值.但这种可能性很小.对于sha256,它是1 /(2 ^ 256).

摘要算法的输出具有恒定的长度.对于SHA256,无论输入长度是1位还是100 Gbs,它始终为256位.如果我们可以解密256位摘要值并返回原始1Gb输入,我们将永远不需要压缩算法:)