Encryption Groovy无法解密密码

Encryption Groovy无法解密密码,encryption,groovy,decode,encode,Encryption,Groovy,Decode,Encode,目前,我正在使用encode方法对密码进行编码,如下所示: static encode = { String s -> print(s) MessageDigest md = MessageDigest.getInstance('SHA') print(md) md.update s.getBytes('UTF-8') def result = Base64.encodeBase64 md.digest()

目前,我正在使用encode方法对密码进行编码,如下所示:

static encode = { String s ->
        print(s)
        MessageDigest md = MessageDigest.getInstance('SHA')
        print(md)
        md.update s.getBytes('UTF-8')
        def result = Base64.encodeBase64 md.digest()
        new String(result, "UTF-8");
    }
那么,有什么可能的方法来解密它吗?我尝试了
decodeBase64()
,结果如下:

[64, -67, 0, 21, 99, 8, 95, -61, 81, 101, 50, -98, -95, -1, 92, 94, -53, -37, -66, -17]

我接近成功了吗?如何将其转换为字符串?

No SHA是单向散列,这意味着您无法获得给定散列的原始数据。单向散列使存储用户密码更加安全,因为即使有人获得了散列的副本,他们也无法轻松地反转散列并检索密码

Base64是一种将二进制数据编码为ASCII文本的编码机制。这不是加密。如果你给我一个Base64编码的字符串,任何人都可以解码它并得到原始消息。它不安全的一个重要线索是Base64没有秘密密钥,这意味着它不会阻止任何人解码它


您不应该使用SHA存储密码。现在暴力太容易了,所以你的密码很容易破解。MD5和SHA不是安全的散列。您需要使用bcrypt或其他可调算法。

谢谢您的建议。我将尝试另一种方法,而不是解密。