如何使用密码学解密加密数据
本文关键字:加密 数据 解密 密码学 何使用 | 更新日期: 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。