2011年12月10日 星期六

加密與解密-DES


     /**** 參考出處
     http://big5.webasp.net/article/15/14452.htm
     ****/

    private byte[] KEY_64 = new byte[] { 42, 16, 93, 156, 78, 4, 218, 32 }; //密鑰
    private byte[] IV_64 = new byte[] { 55, 103, 246, 79, 36, 99, 167, 3 }; //初始化向量

    protected void btnEncryptor_Click(object sender, EventArgs e)
    {
        //加密
        DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
        MemoryStream ms = new MemoryStream();
        CryptoStream cs = new CryptoStream(ms, cryptoProvider.CreateEncryptor(KEY_64, IV_64), CryptoStreamMode.Write);
        StreamWriter sw = new StreamWriter(cs);

        sw.Write(TextBox1.Text);
        sw.Flush();
        cs.FlushFinalBlock();
        ms.Flush();

        Label1.Text = Convert.ToBase64String(ms.GetBuffer(), 0, Int32.Parse(ms.Length.ToString()));
    }



    protected void btnDecryptor_Click(object sender, EventArgs e)
    {
        //解密
        DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
        Byte[] buffer = Convert.FromBase64String(Label1.Text);
        MemoryStream ms = new MemoryStream(buffer);
        CryptoStream cs = new CryptoStream(ms, cryptoProvider.CreateDecryptor(KEY_64, IV_64), CryptoStreamMode.Read);
        StreamReader sr = new StreamReader(cs);

        Label2.Text = sr.ReadToEnd();
    }

沒有留言:

張貼留言