为什么TripleDes恰好使用Rfc2898DeriveBytes的16个字节?

时间:2014-08-22 17:56:31

标签: c# password-encryption tripledes

Rfc2898DeriveBytes k1 = new Rfc2898DeriveBytes(pwd1, salt1, myIterations);

Rfc2898DeriveBytes k2 = new Rfc2898DeriveBytes(pwd1, salt1);

// Encrypt the data.
TripleDES encAlg = TripleDES.Create();
encAlg.Key = k1.GetBytes(16);

我的问题是为什么.GetByte 16? RijndaelManaged也一样吗?它需要16个字节?

1 个答案:

答案 0 :(得分:1)

这是因为算法所需的密钥大小:

当然,没有什么可以阻止你从密钥派生者生成更多的字节,但是如果大小不合法,这些算法将修剪不需要的数据或者只是简单地无法工作 - http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.legalkeysizes(v=vs.110).aspx