DES 加密解密
因为最近在一家公司兼职
而且自己在外面接了项目
很久没有在坛子里面写东西了,真是抱歉
好吧,转入正题吧
最近写个软件,需要加密解密文件
以下是采用DES加密解密的代码
大家有兴趣可以看看啊
而且自己在外面接了项目
很久没有在坛子里面写东西了,真是抱歉
好吧,转入正题吧
最近写个软件,需要加密解密文件
以下是采用DES加密解密的代码
大家有兴趣可以看看啊
1 /// <summary>
2 /// 以下方法用来产生加密的密钥
3 /// </summary>
4 /// <returns></returns>
5
6 public static string GenerateCryptKey()
7 {
8 DESCryptoServiceProvider desCry = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
9 return ASCIIEncoding.ASCII.GetString(desCry.Key);
10 }
11
12 ///<summary>
13 ///以下方法用于DES加密
14 ///这里的cKey就是用GenerateCryptKey产生的
15 ///</summary>
16 public static string EncryptString(string input, string cKey)
17 {
18 byte[] data = Encoding.UTF8.GetBytes(input);
19 DESCryptoServiceProvider desCry = new DESCryptoServiceProvider();
20 desCry.Key = ASCIIEncoding.ASCII.GetBytes(cKey);
21 desCry.IV = ASCIIEncoding.ASCII.GetBytes(cKey);
22 ICryptoTransform desencrypt = desCry.CreateEncryptor();
23 byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
24 return BitConverter.ToString(result);
25 }
26
27 ///<summary>
28 ///以下方法用于DES解密
29 ///解密的cKey要和加密的cKey一样才能解密,也就是传说中的私钥啦
30 ///</summary>
31 public static string DecryptString(string str, string cKey)
32 {
33 string [] input = str.Split("-".ToCharArray());
34 byte [] data = new byte[input.Length];
35 for(int i = 0; i < input.Length; i++)
36 {
37 data[i] = byte.Parse(input[i], NumberStyles.HexNumber);
38 }
39 DESCryptoServiceProvider desCry = new DESCryptoServiceProvider();
40 desCry.Key = ASCIIEncoding.ASCII.GetBytes(cKey);
41 desCry.IV = ASCIIEncoding.ASCII.GetBytes(cKey);
42 ICryptoTransform desencrypt = desCry.CreateDecryptor();
43 byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
44 return Encoding.UTF8.GetString(result);
45 }
2 /// 以下方法用来产生加密的密钥
3 /// </summary>
4 /// <returns></returns>
5
6 public static string GenerateCryptKey()
7 {
8 DESCryptoServiceProvider desCry = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
9 return ASCIIEncoding.ASCII.GetString(desCry.Key);
10 }
11
12 ///<summary>
13 ///以下方法用于DES加密
14 ///这里的cKey就是用GenerateCryptKey产生的
15 ///</summary>
16 public static string EncryptString(string input, string cKey)
17 {
18 byte[] data = Encoding.UTF8.GetBytes(input);
19 DESCryptoServiceProvider desCry = new DESCryptoServiceProvider();
20 desCry.Key = ASCIIEncoding.ASCII.GetBytes(cKey);
21 desCry.IV = ASCIIEncoding.ASCII.GetBytes(cKey);
22 ICryptoTransform desencrypt = desCry.CreateEncryptor();
23 byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
24 return BitConverter.ToString(result);
25 }
26
27 ///<summary>
28 ///以下方法用于DES解密
29 ///解密的cKey要和加密的cKey一样才能解密,也就是传说中的私钥啦
30 ///</summary>
31 public static string DecryptString(string str, string cKey)
32 {
33 string [] input = str.Split("-".ToCharArray());
34 byte [] data = new byte[input.Length];
35 for(int i = 0; i < input.Length; i++)
36 {
37 data[i] = byte.Parse(input[i], NumberStyles.HexNumber);
38 }
39 DESCryptoServiceProvider desCry = new DESCryptoServiceProvider();
40 desCry.Key = ASCIIEncoding.ASCII.GetBytes(cKey);
41 desCry.IV = ASCIIEncoding.ASCII.GetBytes(cKey);
42 ICryptoTransform desencrypt = desCry.CreateDecryptor();
43 byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
44 return Encoding.UTF8.GetString(result);
45 }