问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#加密后,如何解密

发布网友 发布时间:2022-05-06 13:12

我来回答

3个回答

热心网友 时间:2022-06-30 16:51

using System.Security.Cryptography;
using System.IO;
using System.Text;

///MD5加密
public string MD5Encrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach(byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
ret.ToString();
return ret.ToString();

}

///MD5解密
public string MD5Decrypt(string pToDecrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();

byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
for(int x = 0; x < pToDecrypt.Length / 2; x++)
{
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
}

des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();

StringBuilder ret = new StringBuilder();

return System.Text.Encoding.Default.GetString(ms.ToArray());
}

-------------------------------------------------------------------------------

using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
class DES
{
// 创建Key
public string GenerateKey()
{
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}
// 加密字符串
public string EncryptString(string sInputString, string sKey)
{
byte [] data = Encoding.UTF8.GetBytes(sInputString);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return BitConverter.ToString(result);
}
// 解密字符串
public string DecryptString(string sInputString, string sKey)
{
string [] sInput = sInputString.Split("-".ToCharArray());
byte [] data = new byte[sInput.Length];
for(int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
}
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateDecryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.UTF8.GetString(result);
}
}
class Test
{
static void Main()
{
DES des = new DES();
string key = des.GenerateKey();
string s0 = "中国软件 - csdn.net";
string s1 = des.EncryptString(s0, key);
string s2 = des.DecryptString(s1, key);
Console.WriteLine("原串: [{0}]", s0);
Console.WriteLine("加密: [{0}]", s1);
Console.WriteLine("解密: [{0}]", s2);
}
}

热心网友 时间:2022-06-30 16:51

解密就不可能了。md5加密是不可逆的。网上很多解密的网站,不是真正的解密,他是通过查询记录获取的原码。比如1的md5加密是xxxxxx,网站数据库就把1和他的加密数据一起存起来,如果查的话,他就会把xxxxx的原码1找出,这不是真正的解密。。

热心网友 时间:2022-06-30 16:52

MD5的加密应该不能解开,只能用加密后的数据进行比较
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
脚崴了挂什么科、急急急 linux 解压缩工具--tar命令 生日祝福语闺蜜 简短独特暖心 QQ有哪些隐藏的图标??他们分别是什么??怎么样点亮?? QQ业务的各种图标怎么点亮? qq怎么点亮图标和名字 诗中书万象=求下联 大爱如山藏万象下联 中国电子展:电位器和可调电阻的区别是什么?这四点很明显 电位器的接线方法是什么 电位器的工作原理如何 C# des加密,密钥可以不是8位? 我申请的中信银行信用卡今天收到说正在审批 然后在同一时间网上察看了下申请进度 说评分不够 C# DES解密报错:不正确的数据。 中信银行信用卡审批进度问题 C#代码解释! java 解密 c# DESCryptoServiceProvider 问题 C#DESCryptoServiceProvide类解密问题!!! 办了中信银行信用卡,今天查了很多次办卡进度结果最后一次没有通过是什么原因? 我申请中信银行信用卡才5天,今天刚征信了,但我一上网查进度,写着我的申请已获批准,请问有这么`快吗 办了中信银行信用卡,我今天查了很多次办卡进度结果最后一次没有通过是什么原因? 炫舞现在有什么活动 同城情人网我交了200块钱,但还是普通会员,怎么激活vip啊?是自动激活吗? 玫瑰情人在哪? 玫瑰情人换新地址了吗 最近喜欢上了花样跳绳,听说大庆有花样跳绳的,具体地点在哪呀? 跳绳的历史? 我要写小学六年级的作文名字叫《跳绳史话》 小学综合实践活动花样跳绳是什么成果类别 小学生花样跳绳? 要读计算机研究生了,云计算、嵌入式、图形图像、软件开发、网络信息安全,不知道选哪个,大家给点建议? 我想学习java,是学习java软件开发好呢还是学习云计算java好呢?两者有什么区别?哪个更容易 当待加密明文长度为任意长时,如何使用DES算法来进行加密呢 c#的这段des加密,用C怎么才能实现? C++里的des加解密,用C#实现。 c# 做一个DES算法加密解密的窗体 c# DES 动态KEY 如何能生成静态 或者设置静态的KEY ?高手指点! C#实现DES加密时无法取到完整的64bit明文块 C# DES加密解密问题 Encrypt (是否缺少 using 指令或程序集引用?) 秦兵马俑的内容? 灵异咒的剧情简介 恐怖片灵异咒的意思 灵异咒中的故事是不是真的啊? 死魂曲电影结局是什么意思啊 求好看的恐怖片!一定要够恐怖… 恐怖片不好看,推荐经典的 灵异咒是真的吗 请问。我的手机版优酷会员怎么取消自动续费,我用登的优酷为什 恐怖片,记得情节,不记得名字 如何看待美国的悬念惊悚片及其与社会问题的关系 武篆拔中 的拼音是什么