加解密


        //聲明KEY , KEY可以考慮動態生成
   
        private static string sKey =ASCIIEncoding.ASCII.GetString(DESCryptoServiceProvider.Create().Key);
        //加密字符串,利用DES進行加密
        public  string DESjia(string pToEncrypt)
        {
            byte[] data = Encoding.UTF8.GetBytes(pToEncrypt);
            DESCryptoServiceProvider des = GetDes();
            ICryptoTransform desCrypt = des.CreateEncryptor();//加密
            byte[] result = desCrypt.TransformFinalBlock(data, 0, data.Length);
            return BitConverter.ToString(result);
        }
        //解密
        public  string DESjie(string pToDecrypt)
        {
            string[] sInput = pToDecrypt.Split("-".ToCharArray());
            byte[] data = new byte[sInput.Length];
            for (int i = 0; i < sInput.Length; i++)
            {
                data[i] = byte.Parse(sInput[i], System.Globalization.NumberStyles.HexNumber);
            }
            DESCryptoServiceProvider des = GetDes();
            ICryptoTransform desCrypt = des.CreateDecryptor();//解密
            byte[] result = desCrypt.TransformFinalBlock(data, 0, data.Length);
            return Encoding.UTF8.GetString(result);
        }
        //獲取DES
        private  DESCryptoServiceProvider GetDes()
        {
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
            des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
            return des;
        }
 

    protected void Button1_Click1(object sender, EventArgs e)
    {
        this.TextBox2.Text = DESjia(this.TextBox1.Text).ToString();//textbox2得出textbox1加密後的數字
    }
    protected void Button2_Click(object sender, EventArgs e)//這裏是獲得解密後的數字
    {
        this.TextBox3.Text = DESjie(this.TextBox2.Text).ToString();
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章