指定键的大小对于此算法无效。
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(FKEY, FIV), CryptoStreamMode.Write);整个代码如下
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace CDES
{
public class CDES
{
static byte[] FIV;
static byte[] FKEY;
public CDES()
{
// TODO: 在此处添加构造函数逻辑
this.DefaultInit();
} /// <summary>
/// 默认键值和初始向量
/// </summary>
private void DefaultInit()
{
byte[] IV = { 155, 103, 246, 8, 36, 99, 234, 36 };
byte[] key ={ 142, 16, 93, 156, 78, 4, 218, 132 };
FIV = IV;
FKEY = key; } /// <summary>
/// 采用标准 64位 DES 算法加密
/// </summary>
/// <param name="strText">要加密的字符串</param>
/// <returns>返回加密后的字符串</returns>
public static string Encrypt(string strText)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(FKEY, FIV), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cs);
sw.Write(strText);
sw.Flush();
cs.FlushFinalBlock();
ms.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, Convert.ToInt32(ms.Length));
}
/// <summary>
/// 标准64位DES解密
/// </summary>
/// <param name="strText">要解密的字符串</param>
/// <returns>返回解密后的字符串</returns>
public static string Decrypt(string strText)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Convert.FromBase64String(strText);
MemoryStream ms = new MemoryStream(inputByteArray);
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(FKEY, FIV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
} } }
在新建的网页页面中调用
protected void Page_Load(object sender, EventArgs e)
{
string password="Data Source=192.168.1.15;Initial Catalog=AYLData;User ID=sa;Password=water345 ";
Response.Write(CDES.CDES.Encrypt(password));
}
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(FKEY, FIV), CryptoStreamMode.Write);整个代码如下
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace CDES
{
public class CDES
{
static byte[] FIV;
static byte[] FKEY;
public CDES()
{
// TODO: 在此处添加构造函数逻辑
this.DefaultInit();
} /// <summary>
/// 默认键值和初始向量
/// </summary>
private void DefaultInit()
{
byte[] IV = { 155, 103, 246, 8, 36, 99, 234, 36 };
byte[] key ={ 142, 16, 93, 156, 78, 4, 218, 132 };
FIV = IV;
FKEY = key; } /// <summary>
/// 采用标准 64位 DES 算法加密
/// </summary>
/// <param name="strText">要加密的字符串</param>
/// <returns>返回加密后的字符串</returns>
public static string Encrypt(string strText)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(FKEY, FIV), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cs);
sw.Write(strText);
sw.Flush();
cs.FlushFinalBlock();
ms.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, Convert.ToInt32(ms.Length));
}
/// <summary>
/// 标准64位DES解密
/// </summary>
/// <param name="strText">要解密的字符串</param>
/// <returns>返回解密后的字符串</returns>
public static string Decrypt(string strText)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Convert.FromBase64String(strText);
MemoryStream ms = new MemoryStream(inputByteArray);
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(FKEY, FIV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
} } }
在新建的网页页面中调用
protected void Page_Load(object sender, EventArgs e)
{
string password="Data Source=192.168.1.15;Initial Catalog=AYLData;User ID=sa;Password=water345 ";
Response.Write(CDES.CDES.Encrypt(password));
}
byte[] key = Encoding.Unicode.GetBytes(encryptKey);//定义字节数组,用来存储密钥
这样写更简单,更方面!供大家参考,只是需要注意键值字符不能过长!