private void desTest()
{
//明文
string val = "中国人民科";
Console.WriteLine(val + ",长度:" + val.Length);
//密文
string encrypt = DESHelper.DesEncrypt(val);
Console.WriteLine(encrypt + ",长度:" + encrypt.Length);
//byte[]转换成16进制
byte[] arr = Encoding.ASCII.GetBytes(encrypt);
StringBuilder buider = new StringBuilder();
for (int index = 0; index < arr.Length; index++)
{
buider.Append(Convert.ToString(arr[index], 16));
}
string hexStr = buider.ToString();
Console.WriteLine(hexStr + ",长度:" + hexStr.Length);
//十六进制转换byte[]
int len = hexStr.Length / 2;
byte[] data = new byte[len];
string tmp = string.Empty;
for (int index = 0; index < len; index++)
{
tmp = hexStr.Substring(index * 2, 2);
data[index] = Convert.ToByte(tmp, 16);
}
//byte[] 转换成 字符串
string encrypt1 = Encoding.UTF8.GetString(data);
Console.WriteLine(encrypt1 + ",长度:" + encrypt1.Length);
//密文转换成明文
string decrypt = DESHelper.DesDecrypt(encrypt1);
Console.WriteLine(decrypt + ",长度:" + decrypt.Length);
Console.ReadKey();
}
class DESHelper
{
public static string key = "zhengzhoujinhenggongsi";
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)
{
try
{
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());
}
catch (Exception ex)
{
return "";
}
}
}
{
//明文
string val = "中国人民科";
Console.WriteLine(val + ",长度:" + val.Length);
//密文
string encrypt = DESHelper.DesEncrypt(val);
Console.WriteLine(encrypt + ",长度:" + encrypt.Length);
//byte[]转换成16进制
byte[] arr = Encoding.ASCII.GetBytes(encrypt);
StringBuilder buider = new StringBuilder();
for (int index = 0; index < arr.Length; index++)
{
buider.Append(Convert.ToString(arr[index], 16));
}
string hexStr = buider.ToString();
Console.WriteLine(hexStr + ",长度:" + hexStr.Length);
//十六进制转换byte[]
int len = hexStr.Length / 2;
byte[] data = new byte[len];
string tmp = string.Empty;
for (int index = 0; index < len; index++)
{
tmp = hexStr.Substring(index * 2, 2);
data[index] = Convert.ToByte(tmp, 16);
}
//byte[] 转换成 字符串
string encrypt1 = Encoding.UTF8.GetString(data);
Console.WriteLine(encrypt1 + ",长度:" + encrypt1.Length);
//密文转换成明文
string decrypt = DESHelper.DesDecrypt(encrypt1);
Console.WriteLine(decrypt + ",长度:" + decrypt.Length);
Console.ReadKey();
}
class DESHelper
{
public static string key = "zhengzhoujinhenggongsi";
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)
{
try
{
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());
}
catch (Exception ex)
{
return "";
}
}
}