首页 > 其他 > 详细

用C#实现DES加密解密解决URL参数明文的问题

时间:2014-02-13 01:16:20      阅读:415      评论:0      收藏:0      [点我收藏+]

啥也不说,直接上代码。
加密解码,封装到一个类,key可以自己修改。




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;
  
namespace Common
...{
        /**//// <summary>
        /// DESEncrypt加密解密算法。
        /// </summary>
        public sealed class DESEncrypt
        ...{
                private DESEncrypt()
                ...{
                        //
                        // TODO: 在此处添加构造函数逻辑
                        //
                }
  
                private static string key = "joke168";
  
                /**//// <summary>
                /// 对称加密解密的密钥
                /// </summary>
                public static string Key
                ...{
                        get
                        ...{
                                return key;
                        }
                        set
                        ...{
                                key = value;
                        }
                }
  
                /**//// <summary>
                /// DES加密
                /// </summary>
                /// <param name="encryptString"></param>
                /// <returns></returns>
                public static string DesEncrypt(string encryptString)
                ...{
                        byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8));
                        byte[] keyIV = keyBytes;
                        byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                        DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
                        MemoryStream mStream = new MemoryStream();
                        CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write);
                        cStream.Write(inputByteArray, 0, inputByteArray.Length);
                        cStream.FlushFinalBlock();
                        return Convert.ToBase64String(mStream.ToArray());
                }
  
                /**//// <summary>
                /// DES解密
                /// </summary>
                /// <param name="decryptString"></param>
                /// <returns></returns>
                public static string DesDecrypt(string decryptString)
                ...{
                        byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8));
                        byte[] keyIV = keyBytes;
                        byte[] inputByteArray = Convert.FromBase64String(decryptString);
                        DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
                        MemoryStream mStream = new MemoryStream();
                        CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);
                        cStream.Write(inputByteArray, 0, inputByteArray.Length);
                        cStream.FlushFinalBlock();
                        return Encoding.UTF8.GetString(mStream.ToArray());
                }
        }
}

 欢迎批评指正。  

用C#实现DES加密解密解决URL参数明文的问题

原文:http://www.cnblogs.com/joke168/p/3546263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!