开发者社区> 多吉> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

DES加密解密类

简介: 1 /// 2 /// DES加密/解密类。 3 /// 4 public class HXEncrypt 5 { 6 public HXEncrypt() 7 { 8 ...
+关注继续查看
  1 /// <summary>
  2     /// DES加密/解密类。
  3     /// </summary>
  4     public class HXEncrypt
  5     {
  6         public HXEncrypt()
  7         {
  8         }
  9 
 10         #region DES加密
 11 
 12 
 13         #region ========加密========
 14 
 15         /// <summary>
 16         /// 加密
 17         /// </summary>
 18         /// <param name="Text"></param>
 19         /// <returns></returns>
 20         public static string Encrypt(string Text)
 21         {
 22             return Encrypt(Text, "bone");
 23         }
 24         /// <summary> 
 25         /// 加密数据 
 26         /// </summary> 
 27         /// <param name="Text"></param> 
 28         /// <param name="sKey"></param> 
 29         /// <returns></returns> 
 30         public static string Encrypt(string Text, string sKey)
 31         {
 32             DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 33             byte[] inputByteArray;
 34             inputByteArray = Encoding.Default.GetBytes(Text);
 35             des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
 36             des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
 37             System.IO.MemoryStream ms = new System.IO.MemoryStream();
 38             CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
 39             cs.Write(inputByteArray, 0, inputByteArray.Length);
 40             cs.FlushFinalBlock();
 41             StringBuilder ret = new StringBuilder();
 42             foreach (byte b in ms.ToArray())
 43             {
 44                 ret.AppendFormat("{0:X2}", b);
 45             }
 46             return ret.ToString();
 47         }
 48 
 49         #endregion
 50 
 51         #region ========解密========
 52 
 53 
 54         /// <summary>
 55         /// 解密
 56         /// </summary>
 57         /// <param name="Text"></param>
 58         /// <returns></returns>
 59         public static string Decrypt(string Text)
 60         {
 61             return Decrypt(Text, "bone");
 62         }
 63         /// <summary> 
 64         /// 解密数据 
 65         /// </summary> 
 66         /// <param name="Text"></param> 
 67         /// <param name="sKey"></param> 
 68         /// <returns></returns> 
 69         public static string Decrypt(string Text, string sKey)
 70         {
 71             DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 72             int len;
 73             len = Text.Length / 2;
 74             byte[] inputByteArray = new byte[len];
 75             int x, i;
 76             for (x = 0; x < len; x++)
 77             {
 78                 i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);
 79                 inputByteArray[x] = (byte)i;
 80             }
 81             des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
 82             des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
 83             System.IO.MemoryStream ms = new System.IO.MemoryStream();
 84             CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
 85             cs.Write(inputByteArray, 0, inputByteArray.Length);
 86             cs.FlushFinalBlock();
 87             return Encoding.Default.GetString(ms.ToArray());
 88         }
 89 
 90         #endregion
 91 
 92         #endregion
 93 
 94         #region RSA非对称加密
 95 
 96 
 97         /// <summary> 
 98         /// 生成公钥,私钥对
 99         /// </summary> 
100         public static string[] GenerateKeys()
101         {
102             string[] sKeys = new String[2];
103             RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
104             sKeys[0] = rsa.ToXmlString(true);//私钥
105             sKeys[1] = rsa.ToXmlString(false);//公钥
106             return sKeys;
107         }
108 
109         /// <summary> 
110         /// RSA 加密
111         /// </summary> 
112         /// <param name="sSource" >明文</param> 
113         /// <param name="sPublicKey" >公钥</param> 
114         public static string EncryptString(string sSource, string sPublicKey)
115         {
116             RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
117             string plaintext = sSource;
118             rsa.FromXmlString(sPublicKey);
119             byte[] cipherbytes;
120             byte[] byteEn = rsa.Encrypt(Encoding.UTF8.GetBytes("a"), false);
121             cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(plaintext), false);
122 
123             StringBuilder sbString = new StringBuilder();
124             for (int i = 0; i < cipherbytes.Length; i++)
125             {
126                 sbString.Append(cipherbytes[i] + ",");
127             }
128             return sbString.ToString();
129         }
130 
131 
132         /// <summary> 
133         /// RSA 解密
134         /// </summary> 
135         /// <param name="sSource">密文</param> 
136         /// <param name="sPrivateKey">私钥</param> 
137         public static string DecryptString(String sSource, string sPrivateKey)
138         {
139             RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
140             rsa.FromXmlString(sPrivateKey);
141             byte[] byteEn = rsa.Encrypt(Encoding.UTF8.GetBytes("a"), false);
142             string[] sBytes = sSource.Split(',');
143 
144             for (int j = 0; j < sBytes.Length; j++)
145             {
146                 if (sBytes[j] != "")
147                 {
148                     byteEn[j] = Byte.Parse(sBytes[j]);
149                 }
150             }
151             byte[] plaintbytes = rsa.Decrypt(byteEn, false);
152             return Encoding.UTF8.GetString(plaintbytes);
153         }
154 
155         #endregion
156     }
View Code

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
字段加密后长度变化
字段加密后长度变化
37 0
前端des加密信息
前端des加密信息
55 0
小程序RSA非对称加密/解密
小程序RSA非对称加密/解密 官方文档参考:官方文档参考 1.my.rsa 支持的密钥1024或者2048都可以进行加密解密(密钥的生成可以用代码(如java)自行实现或者使用工具生成(可参考:支付宝提供一键生成密钥工具)); 2.
1105 0
对称加密和非对称加密
一、非对称加密: 1、公钥和私钥 公钥:大家都知道的密钥。 私钥:只有自己才知道的密钥。 2、加密过程 A拥有一对公钥和私钥,B也拥有一对公钥和私钥,当A想和B发送消息的时候,A会使用B的公钥进行加密,然后传送给B。
679 0
C# DES对称加密解密
/// /// 加密 /// /// /// private string Encryption(string str) { string...
769 0
RSA不限长度非对称加密解密C#
RSA 分段加解密【解决“不正确的长度”的异常】   RSA 是常用的非对称加密算法。最近使用时却出现了“不正确的长度”的异常,研究发现是由于待加密的数据超长所致。   .NET Framework 中提供的 RSA 算法规定:   待加密的字节数不能超过密钥的长度值除以 8 再减去 11(即:RSACryptoServiceProvider.KeySize / 8 - 11),而加密后得到密文的字节数,正好是密钥的长度值除以 8(即:RSACryptoServiceProvider.KeySize / 8)。
1179 0
php中des加密解密 匹配C#des加密解密 对称加密
原文:php中des加密解密 匹配C#des加密解密 对称加密 网上找来的 php des加密解密 完全匹配上一篇C# 字符串加密解密函数  可以用于C#和php通信 对数据进行加密,其中$key 是加密密钥,$iv 是偏移量,默认偏移量和加密密匙是一样的, 测试 $str = "xubl...
992 0
NSIS:卸载加密码示例
原文 NSIS:卸载加密码示例 最近有几个同学问我关于卸载时加密码的问题,其实很简单,懂点基础就可以根据安装加密码那篇文章http://www.flighty.cn/html/bushu/20100928_99.html来改写一下了,现在我把这个发出来,希望能够帮助到大家,也希望大家能够常来帮我点点广告呵。
1217 0
+关注
多吉
数据库相关技术专家
73
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载