【问题标题】:Asp.net C# Encryption/Decryption on Client and server Side客户端和服务器端的 Asp.net C# 加密/解密
【发布时间】:2011-10-15 05:13:15
【问题描述】:

先生, 我有客户端加密的 jquery 解决方案,但它只创建“MD5”。

我想在客户端使用 Salted Md5 加密 并在 Asp.net 4.0 和 C# 的服务器端解密它

我的加密代码如下:

<script type="text/javascript">
    function chn() {
        var a = document.getElementById('txt1'); 
        var b = document.getElementById('txt2');
        var c = a.value; var d = $.md5(c);
        b.value = (d);
    }
</script>

我希望每次尝试都必须更改加密..

例子:abc的第一次加密是xyz

如果我尝试使用该名称“Abc”,那么它应该创建另一个加密 并检查服务器端。

请帮帮我

【问题讨论】:

  • MD5 是单向加密。您无法解密它(无论如何都不容易),而且无论如何也不打算解密。编辑您的问题,让我们知道您想要完成什么,有人可以给您一个很好的答案。此外,MD5 也不是很安全。我相信(我必须确认一下)SHA 变体之一是更好的选择。
  • @Tim - 我不知道有什么方法可以真正解密 MD5 ...您也许能够找到相同的哈希值,但我不会称之为解密。如果不是这种情况,我想有一个指向此详细信息的链接...
  • @Jared - 是的 - 我正在考虑找到相同的哈希,这与解密它不同。

标签: c# javascript jquery asp.net


【解决方案1】:

MD5 是一种散列,而不是一种加密机制。哈希本质上是有损的,并且多个输入可以(并且根据鸽巢原理绝对)产生相同的输出。

运行 MD5 就像计算单词中元音的数量一样。如果我告诉你一个单词有 4 个元音,并让你告诉我原来的单词是什么,你根本没有足够的信息给我正确的答案。您也许能够找到 some 包含 4 个元音的单词,但您不知道您找到的单词是否是 my 单词。也许是,也许不是。你不可能在数学上说出来。

MD5 的工作方式相同。您正在丢弃大量信息,可能是千兆字节或兆兆字节的信息,而是生成一个 16 字节的摘要。

从本质上讲,这是一个单向过程。

【讨论】:

【解决方案2】:

MD5 无法解密。这是一种单向哈希。除此之外,我发现任何可以在另一端解密的东西都是不安全的,如果它被拦截的话。始终设计和编码以确保您可以验证盐而不是解密它:)

【讨论】:

    猜你喜欢
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2021-11-17
    • 2011-08-19
    • 2021-01-02
    • 1970-01-01
    • 2011-06-22
    相关资源
    最近更新 更多