MD5_SHA1_RSA_DES_AES加密 WPF 测试代码_Andy_Issta_新浪博客

加密解密简单测试C# 后台代码范例,全部代码如下:
MD5_SHA1_RSA_DES_AES加密 <wbr>WPF <wbr>测试代码
 
MD5_SHA1_RSA_DES_AES加密 <wbr>WPF <wbr>测试代码

MD5_SHA1_RSA_DES_AES加密 <wbr>WPF <wbr>测试代码
 
================================================================
using System;
using System.Text;
using System.Windows;
using System.IO;
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 };
        //DES默认密钥向量
        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);
        }
        private void MD5_Encrypt_Click(object sender, RoutedEventArgs e)
        {
            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);
        }
        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);
        }
        ///
        /// RSA 的密钥产生 产生私钥 和公钥
        ///
        ///
        ///
        public void CreateKey()
        {
            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);
            }
        }
        ///
        /// 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())
            {
          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

issta

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值