Encryption Groovy无法解密密码
目前,我正在使用encode方法对密码进行编码,如下所示: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()
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或其他可调算法。谢谢您的建议。我将尝试另一种方法,而不是解密。