如何使用密码学解密加密数据

本文关键字:加密 数据 解密 密码学 何使用 | 更新日期: 2023-09-27 18:27:05

你好,我正在尝试制作一个简单的加密、解密算法,我正确地制作了加密代码,但描述代码不工作

    static string Encript(string value)
    {
        using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
        {
            UTF8Encoding utf8 = new UTF8Encoding();
            byte[] data = md5.ComputeHash(utf8.GetBytes(value));
            return Convert.ToBase64String(data);
        }
    }
    static string Decript(string value)
    {
        using (TripleDESCryptoServiceProvider Tdecript = new TripleDESCryptoServiceProvider())
        {
             UTF8Encoding utf8 = new UTF8Encoding();
             byte[] DataToDecrypt = Convert.FromBase64String(value);
             return utf8.GetString(DataToDecrypt);
        }
    }

当我按下描述按钮

如何使用密码学解密加密数据

时显示

首先,您使用哈希函数来"加密"数据。哈希是一个单向函数。因此,您将无法"解密"您的数据。

其次:MD5不是一个好的哈希机制。请使用类似SHA256的东西。

第三:要加密+解密,我建议您使用AES256。

以下是如何实现这一目标的示例:

AESManaged Microsoft

这可能无法回答您最初的问题,但不要使用MD5-它被认为已损坏。如果你真的想保护你正在哈希的信息的安全,我会至少使用sha-256。

回答您的问题

据我所知,你使用的MD5哈希是一个单向函数,这意味着你需要一个密码并对其进行哈希,将其粘贴在数据库中。当用户回来时,你不会解密数据并检查两个值是否匹配,但你会对他们给你的数据创建一个新的哈希,并将其进行比较。

如果你需要双向加密服务,我会考虑AES。