TripleDESCryptoServiceProvider 指定的密钥不是该算法的有效大小(128 字节)?

TripleDESCryptoServiceProvider Specified key is not a valid size for this algorithm at 128 bytes?

我正在尝试将我的加密解密函数从 DES 更新为 TripleDES。 但是,当我尝试将密钥和 iv 字节数组大小从 8 增加到 128 时:

byte[] key = new byte[128], iv = new byte[128];
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();

其中 8 用于 DESCryptoServiceProvider,128 现在用于 TripleDESCryptoServiceProvider 我总是得到同样的错误:

Specified key is not a valid size for this algorithm.

尽管我的字节数组已经填满了。

我做错了什么?除了长度之外是否有任何要求允许我的密钥和 iv 用于创建加密器?

密钥大小以 而非字节为单位。 3DES 密钥大小为 168、112 或 56 位,具体取决于 keying option。 C# 实现支持 128 和 192 的密钥大小,从中它只会分别使用 112 和 168 位。