代码改变世界

ORM映射框架总结--加密处理

2010-01-02 14:26  贺臣  阅读(896)  评论(0编辑  收藏  举报

1.MD5 加密处理

代码
 1 /**
 2  * 日期:2009-3-15
 3  * 作者:
 4  * 功能:MD5加密及验证
 5  * */
 6 using System;
 7 using System.Collections.Generic;
 8 using System.Linq;
 9 using System.Text;
10 using System.Security.Cryptography;
11 using System.IO;
12 
13 namespace CommonData.Encrypt
14 {
15     public partial class EncryptMD5
16     {
17         /// <summary>
18         /// MD5 加密
19         /// </summary>
20         /// <param name="content">加密的内容</param>
21         /// <returns></returns>
22         public static string MD5Encrypt(string content)
23         {
24             if (string.IsNullOrEmpty(content) == false)
25             {
26                 MD5 md5 = MD5.Create();
27                 string result = "";
28                 byte[] data = md5.ComputeHash(Encoding.Default.GetBytes(content));
29                 for (int i = 0; i < data.Length; i++)
30                 {
31                     result += data[i].ToString("x2");
32                 }
33                 return result;
34             }
35             else
36             {
37                 Console.WriteLine("您加密的内容为空!");
38                 return "";
39             }
40 
41         }
42 
43 
44         /// <summary>
45         /// 加密验证
46         /// </summary>
47         /// <param name="content">输入需要验证的内容</param>
48         /// <param name="data">加密比较的对象</param>
49         /// <returns></returns>
50         public static bool GetContentCheck(string content, string data)
51         {
52             if (!string.IsNullOrEmpty(content) && !string.IsNullOrEmpty(data))
53             {
54                 string hashContent = MD5Encrypt(content);
55                 if (hashContent.Equals(data))
56                 {
57                     return true;
58                 }
59                 else
60                 {
61                     return false;
62                 }
63             }
64             else
65             {
66                 Console.WriteLine("请提供有效的验证信息!");
67                 return false;
68             }
69         }
70     }
71 }
72 

 

 

  这个类提供了两个方法。上面的那个是加密,下面的验证。因为MD5加密时不可逆的过程,因此在验证的时候需要先加密在比较

  如果需要了解更多md5加密可以到msdn 上去看看,介绍的比较详细

 

 

2.XOR 加密

 

代码
 1 /**
 2  * 日期:2009-3-15
 3  * 作者:
 4  * 功能:XOR加密
 5  * */
 6 using System;
 7 using System.Collections.Generic;
 8 using System.Linq;
 9 using System.Text;
10 using System.Security.Cryptography;
11 
12 namespace CommonData.Encrypt
13 {
14     public partial class EncryptXOR
15     {
16         /// <summary>
17         /// XOR加密
18         /// </summary>
19         /// <param name="content">加密的文本</param>
20         /// <param name="password">加密文本密匙</param>
21         /// <returns></returns>
22         public static string EncryptString(string content, string password)
23         {
24             byte[] bcontent = (new UnicodeEncoding()).GetBytes(content);
25             byte[] bpassword = (new UnicodeEncoding()).GetBytes(password);
26 
27             for (int i = 0; i < bcontent.Length; i += 2)
28             {
29                 for (int j = 0; j < bpassword.Length; j += 2)
30                 {
31                     bcontent[i] = Convert.ToByte(bcontent[i] ^ bpassword[j]);
32                 }
33             }
34             return (new UnicodeEncoding()).GetString(bcontent).TrimEnd('\0');
35         }
36 
37 
38         /// <summary>
39         /// XOR 解密
40         /// </summary>
41         /// <param name="content">解密的文本</param>
42         /// <param name="key">解密文本密匙</param>
43         /// <returns></returns>
44         public static string DecryptString(string content, string key)
45         {
46             return EncryptString(content, key);
47         }
48     }
49 }
50 

 

 

  这个加密算法是可逆的,不过在解密的时候需要密钥处理.这个加密不难,算法也比较简单


作者:情缘
出处:http://www.cnblogs.com/qingyuan/
关于作者:从事仓库,生产软件方面的开发,在项目管理以及企业经营方面寻求发展之路
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
联系方式: 个人QQ  821865130 ; 仓储技术QQ群 88718955,142050808 ;
吉特仓储管理系统 开源地址: https://github.com/hechenqingyuan/gitwms