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个字节?
答案 0 :(得分:1)
这是因为算法所需的密钥大小:
当然,没有什么可以阻止你从密钥派生者生成更多的字节,但是如果大小不合法,这些算法将修剪不需要的数据或者只是简单地无法工作 - http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.legalkeysizes(v=vs.110).aspx。