使用DES3加密3000字节及以上

本文关键字:字节 3000 DES3 加密 使用 | 更新日期: 2023-09-27 18:25:28

我试图用DES3:加密数据

private byte[] EncryptKey(byte[] wrappedKey)
    {
        MemoryStream ms = new MemoryStream(wrappedKey);
        TripleDESCryptoServiceProvider cryptoProvider = new TripleDESCryptoServiceProvider();
        cryptoProvider.Key = transportKeyBytes; //key
        cryptoProvider.Padding = PaddingMode.None;
        cryptoProvider.Mode = CipherMode.ECB;
        CryptoStream cs = new CryptoStream(ms, cryptoProvider.CreateEncryptor(), CryptoStreamMode.Read);
        StreamReader sr = new StreamReader(cs);
        byte[] key = new Byte[wrappedKey.Length];
        cs.Read(key, 0, wrappedKey.Length);
        cs.Close();
        ms.Close();
        return key;
    }

但我在说时出错了

Length of the data to encrypt is invalid.

可以加密的数据的最大大小是多少?

使用DES3加密3000字节及以上

您没有使用任何填充。这可能是你犯错误的原因。通过不添加任何填充,您只能加密精确数量的8字节块。将填充更改为DES的PKCS#5。

ECB模式不安全。有关(文字)说明,请参阅维基百科。请改用CBC或CTR模式。

3DES已经过时。除非为了与旧系统兼容而必须使用AES。