TripleDESCryptoServiceProvider

TripleDESCryptoServiceProvider

本文介绍了使用TripleDESCryptoServiceProvider加密...错误!!!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用TripleDESCryptoServiceProvider加密一个字节数组,输入的大小为64字节,但返回72字节给我!为什么?我的代码如下:

I want to user TripleDESCryptoServiceProvider to encrypt a byte array,the size of input is 64 bytes,but it return 72 bytes to me!!! Why? My code as following:

public byte[] EncryptBytes(byte[] plainBytes, byte[] key, byte[] iv)
        {
            try
            {
                TripleDESCryptoServiceProvider tds = new TripleDESCryptoServiceProvider();
               // tds.Padding = PaddingMode.None;
                ICryptoTransform ct = tds.CreateEncryptor(key, iv);
                MemoryStream ms = new MemoryStream();
                CryptoStream cStream = new CryptoStream(ms,
                   ct,
                    CryptoStreamMode.Write);
                cStream.Write(plainBytes, 0, plainBytes.Length);
                cStream.FlushFinalBlock();
                byte[] ret = ms.ToArray();
                cStream.Close();
                ms.Close();
                return ret;
            }
            catch
            {
                return plainBytes;
            }
        }

 public byte[] DecryptBytes(byte[] encryptBytes, byte[] key, byte[] iv)
        {
            try
            {
                TripleDESCryptoServiceProvider tds = new TripleDESCryptoServiceProvider();
               // tds.Padding = PaddingMode.None;
                ICryptoTransform ct = tds.CreateEncryptor(key, iv);
                MemoryStream msDecrypt = new MemoryStream(encryptBytes);
                CryptoStream cStream = new CryptoStream(msDecrypt,
                    ct,
                    CryptoStreamMode.Read);

                byte[] fromEncrypt = new byte[encryptBytes.Length];
                cStream.Read(fromEncrypt, 0, fromEncrypt.Length);
                //cStream.FlushFinalBlock();
                //msDecrypt.Close();
                //cStream.Close();
                return fromEncrypt;
            }
            catch
            {
                return encryptBytes;
            }
        }

推荐答案


这篇关于使用TripleDESCryptoServiceProvider加密...错误!!!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 11:07