You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.4 KiB
97 lines
3.4 KiB
using System; |
|
using System.Collections.Generic; |
|
using System.ComponentModel; |
|
using System.Data; |
|
using System.Drawing; |
|
using System.Text; |
|
using System.Windows.Forms; |
|
using System.Configuration; |
|
using System.Web; |
|
using System.Security.Cryptography; |
|
using System.IO; |
|
|
|
namespace Kingo.Plugin.MakeTaskPackage.Common |
|
{ |
|
public class DES |
|
{ |
|
/// <summary> |
|
/// 8位密钥 |
|
/// </summary> |
|
public static string DES_Key = "KINGO.IT"; |
|
|
|
#region DESEnCode DES加密 |
|
public static string DESEnCode(string pToEncrypt, string sKey) |
|
{ |
|
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); |
|
byte[] inputByteArray = Encoding.GetEncoding("UTF-8").GetBytes(pToEncrypt); |
|
|
|
//建立加密对象的密钥和偏移量 |
|
//原文使用ASCIIEncoding.ASCII方法的GetBytes方法 |
|
//使得输入密码必须输入英文文本 |
|
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); |
|
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); |
|
MemoryStream ms = new MemoryStream(); |
|
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); |
|
|
|
cs.Write(inputByteArray, 0, inputByteArray.Length); |
|
cs.FlushFinalBlock(); |
|
|
|
StringBuilder ret = new StringBuilder(); |
|
foreach (byte b in ms.ToArray()) |
|
{ |
|
ret.AppendFormat("{0:X2}", b); |
|
} |
|
ret.ToString(); |
|
return ret.ToString(); |
|
} |
|
#endregion |
|
|
|
#region DESDeCode DES解密 |
|
public static string DESDeCode(string pToDecrypt, string sKey) |
|
{ |
|
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); |
|
|
|
byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; |
|
for (int x = 0; x < pToDecrypt.Length / 2; x++) |
|
{ |
|
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)); |
|
inputByteArray[x] = (byte)i; |
|
} |
|
|
|
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); |
|
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); |
|
MemoryStream ms = new MemoryStream(); |
|
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); |
|
cs.Write(inputByteArray, 0, inputByteArray.Length); |
|
cs.FlushFinalBlock(); |
|
|
|
StringBuilder ret = new StringBuilder(); |
|
return System.Text.Encoding.Default.GetString(ms.ToArray()); |
|
} |
|
|
|
|
|
public static string DESDeCodeUtf8(string pToDecrypt, string sKey) |
|
{ |
|
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); |
|
|
|
byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; |
|
for (int x = 0; x < pToDecrypt.Length / 2; x++) |
|
{ |
|
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)); |
|
inputByteArray[x] = (byte)i; |
|
} |
|
|
|
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); |
|
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); |
|
MemoryStream ms = new MemoryStream(); |
|
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); |
|
cs.Write(inputByteArray, 0, inputByteArray.Length); |
|
cs.FlushFinalBlock(); |
|
|
|
StringBuilder ret = new StringBuilder(); |
|
return System.Text.Encoding.GetEncoding("UTF-8").GetString(ms.ToArray()); |
|
} |
|
#endregion |
|
|
|
} |
|
}
|
|
|