java这种加密方法,怎么解密得到原来的密码:报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

java这种加密方法,怎么解密得到原来的密码:报错 

kun坤 2020-06-04 21:16:35 32

    public String encryptPassword(String username, String password, String salt)     {         return new Md5Hash(username + password + salt).toHex().toString();     }

Java 数据安全/隐私保护
分享到
取消 提交回答
全部回答(1)
  • kun坤
    2020-06-08 09:43:19

    md5算法是不可逆的,没有办法得到原文######

    引用来自“韦小仇”的评论

    md5算法是不可逆的,没有办法得到原文

    MD5不可逆? 没有什么是彩虹表做不到的,如果有,那就是彩虹表不全。 ######如果有salt,够咸够复杂,彩虹表暂时失效。######答案是肯定不行的!即MD5算法处理过的字符是不可逆的,因为其根本不是一种加密算法,而是一种摘要算法,楼主明白什么叫摘要吗?也就是原文的一部分,md5的意思并不是加密,而是找出代表此密码的唯一标识。打比方说123456这组密码用001来表示。23456用002来表示,而这个001是不可能反向得到123456的,因为他们没有因为所以的关系只有逻辑关联,当然md5是则是独一无二的。即123456这个密码只会生成唯一的MD5,也就是如果001是123456的MD5,那除了1233456能生成001,其它任何密码都不可能生成同样的001。这也是md5被用于密码的原因。 md5被用为密码,因为密码在存为md5后,存的不是密文,而是其摘要,也就 是你输入123456转成md5为001存到数据库里下次只有输入123456才能生成001这个md5,才会表示输入正确,如果输入的是其它值则一定生成不了md5为001的值。这是因为md5的唯一性决定的。######没法得到,不过你可以重新设置一个呀,反正有salt,利用这个得到一个新的密码,然后数据库里替换下就好了

    0 0
+ 订阅

云安全开发者的大本营

推荐文章
相似问题