DES加密解密类

  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

 

时间: 2024-09-23 05:48:03

DES加密解密类的相关文章

java常用工具类之DES和Base64加密解密类_java

一.DES加密和解密 package com.itjh.javaUtil; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.spec.InvalidKeySpecExc

一个java的DES加解密类转换成C#

原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.Pattern; //import java.util.Hashtable; import javax.crypto.*; import javax.crypto.spec.*; import sun.misc.*; /** * des加密解密 */ pu

各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)

原文:各种加密解密函数(URL加密解密.sha1加密解密.des加密解密) 普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语言时这类可逆函数非常难搞定.所以这时尽量使用AES DES RC4 Rabbit TripleDes这些方法. 包含超时的加密解密函数 1 /** 2 * 加密 3 * @param string $string 要加密或解密的字符串 4 * @param string $operation 加密

java中使用DES加密解密实例_java

在前面介绍了一些加密解密类的使用,这里综合起来做一个简单的测试,代码如下: MainActivity: 复制代码 代码如下: package com.home.testdes; import android.os.Bundle;import android.util.Log;import android.app.Activity; public class MainActivity extends Activity {  @Override protected void onCreate(Bun

[C#] 常用工具类——加密解密类

using System; using System.Configuration; using System.Collections.Generic; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using S

python实现DES加密解密方法实例详解

  本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优化 1. desstruct.py DES加密中要使用的结构体 ? 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

PHP、Java des加密解密实例

  这篇文章主要介绍了PHP.Java des加密解密实例,des加密是对称加密中在互联网应用的比较多的一种加密方式,本文分别给出了PHP和JAVA版本的实现代码,需要的朋友可以参考下 des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库 下面是加密解密的实例 代码如下: $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_

PHP加密解密类实例分析

  这篇文章主要介绍了PHP加密解密类,实例分析了php实现加密与解密的原理与相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了PHP加密解密类.分享给大家供大家参考.具体分析如下: 这段代码支持 数组加密 , 密文有效期, 各种对称加密 其中参数如下: * @use ption::en($string, $key); * @param String $string 需要加密的字串 * @param String $skey 密钥 * @param int $expiry 密文有效

PHP中加密解密函数与DES加密解密实例

 例子,php加密解密的例子 加密函数:   代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数  srand((double)microtime() * 1000000);  $encrypt_key=md5(rand(0, 32000));  $ctr=0;  $tmp='';  for($i=0;$i<strlen($str);$i++){   $ctr=$