zoukankan      html  css  js  c++  java
  • RijndaelManaged 自定义key和iv

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Security.Cryptography;

    namespace SynEncrption
    {
        public partial class Form1 : Form
        {
            private string key = "abcde234123@#ew9182h4r1238132&AUIFQEIfaidsfnqeiqewrndsifqnwqiwernqewiqeiqe";
            private string iv = "s9afn1@#$!#asdfiqwnerasidfnqwiesndaf912#$!@341";

            public Form1()
            {
                InitializeComponent();
            }
         
            private void smbEncrpty_Click(object sender, EventArgs e)
            {
                string text = encrption(this.memoEdit1.Text, key.Substring(032), iv.Substring(016));
                this.memoEdit2.Text = text;
            }

            private string encrption(string input, string key, string iv)
            {
                MemoryStream msEncrypt = null;
                RijndaelManaged aesAlg = null;

                string sresult = string.Empty;

                try
                {
                    byte[] keys = System.Text.Encoding.UTF8.GetBytes(key);
                    byte[] ivs = System.Text.Encoding.UTF8.GetBytes(iv);
                    aesAlg = new RijndaelManaged();

                    aesAlg.Key = keys;
                    aesAlg.IV = ivs;

                    ICryptoTransform ict = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
                    msEncrypt = new MemoryStream();

                    using (CryptoStream cts = new CryptoStream(msEncrypt, ict, CryptoStreamMode.Write))
                    {
                        using (StreamWriter sw = new StreamWriter(cts))
                        {
                            sw.Write(input);
                        }
                    }

                }
                finally
                {
                    if (aesAlg != null)
                    {
                        aesAlg.Dispose();
                        aesAlg.Clear();
                    }
                }

                if (msEncrypt != null)
                {
                    byte[] content = msEncrypt.ToArray();

                    sresult = Convert.ToBase64String(content);
                }

                return sresult;
            }

            private string decrption(string input, string key, string iv)
            {
                string sresult = string.Empty;

                byte[] keys = System.Text.Encoding.UTF8.GetBytes(key);
                byte[] ivs = System.Text.Encoding.UTF8.GetBytes(iv);

                byte[] inputbytes = Convert.FromBase64String(input);

                RijndaelManaged rm =null;

                try
                {
                    rm = new RijndaelManaged();
                    rm.Key = keys;
                    rm.IV = ivs;

                    ICryptoTransform ict = rm.CreateDecryptor(rm.Key, rm.IV);

                    using (MemoryStream ms = new MemoryStream(inputbytes))
                    {
                        using (CryptoStream cs = new CryptoStream(ms, ict, CryptoStreamMode.Read))
                        {
                            using (StreamReader sr = new StreamReader(cs))
                            {
                                sresult = sr.ReadToEnd();
                            }
                        }
                    }

                }
                finally
                {
                    if (rm != null)
                    {
                        rm.Dispose();
                        rm.Clear();
                    }
                }

                return sresult;
            }

            private void smbDecrypt_Click(object sender, EventArgs e)
            {
                string text = decrption(this.memoEdit2.Text, key.Substring(032), iv.Substring(016));
                this.memoEdit3.Text = text;
            }
        }
    }
  • 相关阅读:
    中断类型表
    ComboBox中Datasource、 DisplayMember和ValueMember 三个属性问题 初学者
    ComboBox中的 DataSourc、 DisplayMember 、 valueMember 属性顺序设置问题 初学者
    皮尔逊相关度评价(Pearson correlation Score)
    欧几里得距离评价(Euclidean Distance Score)
    Leonardo da Vince
    维基F#译文: 值与函数(中)
    维基F#译文: 值与函数(上)
    perl5的引用(perlreftut)
    维基F#译文:入门
  • 原文地址:https://www.cnblogs.com/fgynew/p/2265322.html
Copyright © 2011-2022 走看看