用C#实现Des加密和解密

    技术2022-05-11  45

    using  System; using  System.Collections.Generic; using  System.ComponentModel; using  System.Data; using  System.Drawing; using  System.Text; using  System.Windows.Forms; using  System.Security.Cryptography; using  System.IO; namespace  SoftEncrypt {    public partial class Form1 : Form    {        const string KEY_64 = "12345678";        const string IV_64 = "98765432"//注意了,是8个字符,64位         public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            textBox2.Text = Encode(textBox1.Text.Trim());        }        public static string Encode(string data)        {            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();            int i = cryptoProvider.KeySize;            MemoryStream ms = new MemoryStream();            CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);            StreamWriter sw = new StreamWriter(cst);            sw.Write(data);            sw.Flush();            cst.FlushFinalBlock();            sw.Flush();            return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);        }        public static string Decode(string data)        {            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);            byte[] byEnc;            try            {                byEnc = Convert.FromBase64String(data);            }            catch            {                return null;            }            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();            MemoryStream ms = new MemoryStream(byEnc);            CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);            StreamReader sr = new StreamReader(cst);            return sr.ReadToEnd();        }        private void button2_Click(object sender, EventArgs e)        {            textBox1.Text = Decode(textBox2.Text.Trim());        }     }}  

    最新回复(0)