MD5_SHA1_RSA_DES_AES加密 WPF 测试代码

加密解密简单测试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())
            {
          

猜你喜欢

转载自blog.csdn.net/lm393485/article/details/88894288
今日推荐