TripleDES密钥大小 - .NET与维基百科

Dai*_*Dai 6 encryption wikipedia des tripledes

根据维基百科,TripleDES支持56,112和168位密钥长度,但System.Cryptography.TripleDESCryptoServiceProvider.LegalKeySizes表示它只接受128和192位密钥长度.

我正在开发的系统需要可以互操作(我的代码加密的数据需要在PHP,Java和Objective-C中解密),在这种情况下我不是正确的.

那么我应该相信谁呢?我怎样才能确定我的加密数据是否可移植?

emb*_*oss 13

维基百科并未说TripleDES支持56位密钥."键控选项"讨论"三倍长度"键和"双倍长度"键,后者"将键大小减小到112位".原始DES的有效密钥大小为56位.这样的密钥由64位输入构成,其中8位仍未使用.因此,"三倍长度"密钥选项使用由三次64位(= 192位)构成的三倍56位(= 168),"双倍长度"选项使用两次56位密钥(= 112)由两次64位(= 128)构成.

由于您的TripleDESCryptoServiceProvider需要首先从基于64位的输入派生实际密钥,因此它只需要128位(双倍长度)或192位(三倍长度)作为输入,然后在内部导出168或112位实际来自那个输入的键.

这是TripleDES的标准程序,因此跨平台的可移植性应该没有问题.