-1

有没有办法做到这一点?在我的映射类中,当我将数据库数据提取到实体中时,我想解密一个 MD5 密码。这可能吗?

谢谢!

4

2 回答 2

1

MD5 可用于加密密码。MD5 被认为是损坏的。您所做的是使用 MD5 对密码进行哈希处理,并将其与数据库中的原始哈希值进行比较。由于 MD5 是一种方式,如果密码相同,则哈希值相同。

编辑:

如果您正在寻找破解 MD5 加密密码,那就不同了。看看这个

你首先明白这不是技术特定的。这些是可以使用各种技术实现的基本计算机科学通用概念。在你的情况下 C# 和 NHibernate 等。

简单地说,你用MD5(消息摘要算法 5)做的是,你做hashing。因为它是一个哈希函数。看看这个

但是这个 MD5 是一个单向哈希函数。“一种方式”意味着几乎不可能从字符串中导出原始文本。这就是为什么它用于密码加密。因为您无法反转单向功能并获取实际密码。看看这个

我假设您想检查插入的密码是否正确并允许登录或做任何必要的事情。您不应该对密码进行解密。如果您不打算破解密码。密码破解更多的是一种猜测,并且可以使用已实施方法的弱点(在 MD5 散列冲突中)来减少范围。

在密码创建中,您获取密码并使用 MD5(在您的情况下)对其进行哈希处理。然后这个哈希值就是您要存储在数据库中的内容。然后下次你想检查天气时密码是正确的。然后您再次获取密码并再次使用 MD5 对其进行哈希处理。然后您获取该哈希值并将其与数据库中的哈希值进行比较。如果它们匹配插入的密码是正确的。

我可以看到你是新来的。我建议您最好先学习这些概念,无论您使用什么技术,这些概念都会对您有所帮助。

于 2013-04-04T15:47:23.277 回答
0

你不妨问问你能不能把一堆灰烬在烧掉之前重新变成原木。散列是一种单向动作......你不能“逆转”它。您唯一能做的就是确定一些生成相同哈希(哈希冲突)的源值。

于 2013-04-04T17:44:11.793 回答