【发布时间】:2013-09-05 07:11:00
【问题描述】:
所以在我的工作场所,我有一个基于 .NET 的 Web 应用程序,它必须在查询字符串中获取一个加密参数。
提供加密字符串的人是外部承包商,他们更喜欢使用微软的 Crypto API 来加密字符串(几乎是要求。但不能更换承包商,高层决定这些东西......)。
好吧,很公平,AFAIK 我可以用 C# 解密它,但在无休止的搜索之后,我仍然不知道它是如何工作的。
这意味着我什至无法提供示例代码,并且在我可以解密这个字符串之前,我一直被困在这个绑定中。
我拥有的是:
我有他们用来加密的通用密码,我必须用它来解密它。
加密设置为:“CALC_AES_128”哈希:“CALC_MD5”。字符串被加密,然后散列。
所以我想解散它,然后解密它。
我知道有很多问题要问,但我该怎么做呢?
【问题讨论】:
-
你不能“unhash”(没有使用彩虹表,我认为它不适用,因为它可能是盐渍的)。这就像说你想“取消裁剪照片”。通常,您会将哈希值与执行相同操作时得到的值进行比较。
-
+1 @MarcGravell 可以“取消哈希”的哈希在加密业务中被称为“破碎哈希”。
-
不,不能对 md5 散列进行反散列处理(彩虹表除外)。让我们这样说吧:MD5 散列始终是 16 字节,无论您输入什么。如果可以不散列,那将是有史以来最棒的压缩技术。您可以观看 16 字节的 10 小时高清电影...
-
1.物理上、数学上不可能......也许 2. 是 3. 通过 HTTPS 的纯文本(确保关闭压缩)。
-
https 上的纯文本很好。只需确保客户端验证服务器的证书即可。如果您的证书验证接受攻击者的证书,他们可以拦截您的连接。
标签: c# asp.net encryption cryptoapi mscapi