加密解密简单测试C# 后台代码范例,全部代码如下:
================================================================
using System;
using System.Text;
using System.Windows;
using System.Text;
using System.Windows;
using System.IO;
using System.Security;
using System.Security.Cryptography;//这个引用很重要,必须要有
using System.Security;
using System.Security.Cryptography;//这个引用很重要,必须要有
namespace EncryptDecryptAlgorithms
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
//AES默认密钥向量
public static readonly byte[] AES_IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
//AES默认密钥向量
public static readonly byte[] AES_IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
//DES默认密钥向量
private static byte[] DES_IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
public MainWindow()
{
InitializeComponent();
}
#region RSA 加密解密
#region RSA 的密钥产生
private static byte[] DES_IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
public MainWindow()
{
InitializeComponent();
}
#region RSA 加密解密
#region RSA 的密钥产生
///
/// RSA 的密钥产生 产生私钥 和公钥
///
///
///
public void RSAKey(out string xmlKeys, out string xmlPublicKey)
{
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
xmlKeys = rsa.ToXmlString(true);
xmlPublicKey = rsa.ToXmlString(false);
}
/// RSA 的密钥产生 产生私钥 和公钥
///
///
///
public void RSAKey(out string xmlKeys, out string xmlPublicKey)
{
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
xmlKeys = rsa.ToXmlString(true);
xmlPublicKey = rsa.ToXmlString(false);
}
private void MD5_Encrypt_Click(object sender, RoutedEventArgs e)
{
EncryptMessage.Clear();
{
EncryptMessage.Clear();
MD5 md5Hasher = MD5.Create();
//MD5 md5Hasher = new MD5CryptoServiceProvider();
byte[] PlainText = Encoding.Default.GetBytes(UserInputMessage.Text);//将要加密的字符串转换为字节数组
byte[] EncryptText = md5Hasher.ComputeHash(PlainText);//将字符串加密后也转换为字符数组
EncryptMessage.Text = Convert.ToBase64String(EncryptText);//将加密后的字节数组转换为加密字符串
//EncryptMessage.Text = BitConverter.ToString(EncryptText);
}
//MD5 md5Hasher = new MD5CryptoServiceProvider();
byte[] PlainText = Encoding.Default.GetBytes(UserInputMessage.Text);//将要加密的字符串转换为字节数组
byte[] EncryptText = md5Hasher.ComputeHash(PlainText);//将字符串加密后也转换为字符数组
EncryptMessage.Text = Convert.ToBase64String(EncryptText);//将加密后的字节数组转换为加密字符串
//EncryptMessage.Text = BitConverter.ToString(EncryptText);
}
private void SHA1_Encrypt_Click(object sender, RoutedEventArgs e)
{
SHA1 ShaHasher = new SHA1CryptoServiceProvider();
byte[] PlainText = Encoding.Unicode.GetBytes(UserInputMessage.Text);
byte[] EncryptText = ShaHasher.ComputeHash(PlainText);
//EncryptMessage.Text = BitConverter.ToString(EncryptText);
EncryptMessage.Text = Convert.ToBase64String(EncryptText);
}
{
SHA1 ShaHasher = new SHA1CryptoServiceProvider();
byte[] PlainText = Encoding.Unicode.GetBytes(UserInputMessage.Text);
byte[] EncryptText = ShaHasher.ComputeHash(PlainText);
//EncryptMessage.Text = BitConverter.ToString(EncryptText);
EncryptMessage.Text = Convert.ToBase64String(EncryptText);
}
///
/// RSA 的密钥产生 产生私钥 和公钥
///
///
///
/// RSA 的密钥产生 产生私钥 和公钥
///
///
///
public void CreateKey()
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
using (StreamWriter writer = new StreamWriter("PrivateKey.xml")) //这个文件要保密...
{
PrivateKey.Text = rsa.ToXmlString(true);
writer.WriteLine(PrivateKey.Text);
}
using (StreamWriter writer = new StreamWriter("PublicKey.xml"))
{
PublicKey.Text = rsa.ToXmlString(false);
writer.WriteLine(PublicKey.Text);
}
}
{
PrivateKey.Text = rsa.ToXmlString(true);
writer.WriteLine(PrivateKey.Text);
}
using (StreamWriter writer = new StreamWriter("PublicKey.xml"))
{
PublicKey.Text = rsa.ToXmlString(false);
writer.WriteLine(PublicKey.Text);
}
}
///
/// RSA加密
///
/// 明文
/// 公钥
/// 密文字符串
public static string EncryptByRSA(string plaintext, string publicKey)
{
UnicodeEncoding ByteConverter = new UnicodeEncoding();
byte[] dataToEncrypt = ByteConverter.GetBytes(plaintext);
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
{
RSA.FromXmlString(publicKey);
byte[] encryptedData = RSA.Encrypt(dataToEncrypt, false);
return Convert.ToBase64String(encryptedData);
}
}
private void RSA_Encrypt_Click(object sender, RoutedEventArgs e)
{
if (!string.IsNullOrEmpty(UserInputMessage.Text))
{
CreateKey();
/// RSA加密
///
/// 明文
/// 公钥
/// 密文字符串
public static string EncryptByRSA(string plaintext, string publicKey)
{
UnicodeEncoding ByteConverter = new UnicodeEncoding();
byte[] dataToEncrypt = ByteConverter.GetBytes(plaintext);
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
{
RSA.FromXmlString(publicKey);
byte[] encryptedData = RSA.Encrypt(dataToEncrypt, false);
return Convert.ToBase64String(encryptedData);
}
}
private void RSA_Encrypt_Click(object sender, RoutedEventArgs e)
{
if (!string.IsNullOrEmpty(UserInputMessage.Text))
{
CreateKey();
try
{
EncryptMessage.Text = EncryptByRSA(UserInputMessage.Text, PublicKey.Text);
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(ex.Message);
}
}
}
///
/// RSA解密
///
/// 密文
/// 私钥
/// 明文字符串
public static string DecryptByRSA(string ciphertext, string privateKey)
{
UnicodeEncoding byteConverter = new UnicodeEncoding();
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
{
{
EncryptMessage.Text = EncryptByRSA(UserInputMessage.Text, PublicKey.Text);
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(ex.Message);
}
}
}
///
/// RSA解密
///
/// 密文
/// 私钥
/// 明文字符串
public static string DecryptByRSA(string ciphertext, string privateKey)
{
UnicodeEncoding byteConverter = new UnicodeEncoding();
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
{