C# DES加解密ECB模式

  • Post author:
  • Post category:其他



#region AES加密

/// <summary>

///  AES 加密

/// </summary>

/// <param name=”str”>明文(待加密)</param>

/// <param name=”key”>密文</param>

/// <returns></returns>

public string Encrypt(string paymentCode)

{


string key = “@>)4]8%a”;

SymmetricAlgorithm symmetric;

ICryptoTransform iCrypto;

MemoryStream memory;

CryptoStream crypto;

byte[] byt;

//八位的key还是用DESCryptoServiceProvider 而非TripleDESCryptoServiceProvider

symmetric = new DESCryptoServiceProvider();

symmetric.Mode = CipherMode.ECB;//模式

symmetric.Padding = PaddingMode.PKCS7;//填充

symmetric.Key = Encoding.UTF8.GetBytes(key);

//mCSP.IV = Encoding.UTF8.GetBytes(iv);   ECB模式不需要iv

iCrypto = symmetric.CreateEncryptor();

byt = Encoding.UTF8.GetBytes(paymentCode);

memory = new MemoryStream();

crypto = new CryptoStream(memory, iCrypto, CryptoStreamMode.Write);

crypto.Write(byt, 0, byt.Length);

crypto.FlushFinalBlock();

crypto.Close();

return Convert.ToBase64String(memory.ToArray());

}

/// <summary>

///  AES 解密

/// </summary>

/// <param name=”str”>明文(待解密)</param>

/// <param name=”key”>密文</param>

/// <returns></returns>

public static string Decrypt(string str)

{


string key = “@>)4]8%a”;

SymmetricAlgorithm mCSP = new DESCryptoServiceProvider();

mCSP.Mode = CipherMode.ECB;

mCSP.Padding = PaddingMode.PKCS7;

mCSP.Key = Encoding.UTF8.GetBytes(key);

//mCSP.IV = Encoding.UTF8.GetBytes(iv);

ICryptoTransform iCrypto;

MemoryStream memory;

CryptoStream crypto;

byte[] byt;

iCrypto = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);

byt = Convert.FromBase64String(str);

memory = new MemoryStream();

crypto = new CryptoStream(memory, iCrypto, CryptoStreamMode.Write);

crypto.Write(byt, 0, byt.Length);

crypto.FlushFinalBlock();

crypto.Close();

return Encoding.UTF8.GetString(memory.ToArray());

}


#endregion

private void button1_Click(object sender, EventArgs e)

{


textBox2.Text = Encrypt(textBox1.Text);

}

private void button2_Click(object sender, EventArgs e)

{


textBox1.Text = Decrypt(textBox2.Text);

}