可以反转MD5吗?

 一加一等于贰_661 发布于 2022-12-10 11:23

我有MD5-hashed一个字符串.

def hash(s: String) = {
    val m = java.security.MessageDigest.getInstance("MD5")
    val b = s.getBytes("UTF-8")
    m.update(b, 0, b.length)
    new java.math.BigInteger(1, m.digest()).toString(16)
}

现在我想要原来的字符串.我怎样才能做到这一点?

1 个回答
  • MD5是加密哈希函数.密码哈希是单向函数.您无法撤消加密哈希值,但您可以强制删除邮件以查找加密哈希值.

    暴力强制意味着尝试所有可能的输入字符串,然后检查散列值是否正确.这是可能的,因为加密哈希在计算上也是唯一的.这意味着有无穷无尽的消息将导致生成相同的哈希值,但不可能两个导致相同的哈希值.由于MD5断开,MD5哈希值对于特殊构造的消息不是唯一的.如果您可以找到具有相同哈希值的两条消息,则称为冲突.

    也可以创建称为彩虹表的巨大查找表.这可以帮助加速寻找正确的输入.这仅适用于相对较小或可猜测的数据输入; 即它们主要用于查找弱密码.其中一些数据库可以在网上找到.

    2022-12-11 02:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有