4 c# encryption initialization vector
所以,当我说出类似的话:
TripleDES tripledes = TripleDES.Create();
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, plain);
tripledes.Key = pdb.GetBytes(16);
tripledes.IV = pdb.GetBytes(16);
Run Code Online (Sandbox Code Playgroud)
我收到一个错误.错误曾经在密钥上,但它已被修复(我认为 - 除非你发现错误).但是,当我设置IV时发生错误:
tripledes.IV = pdb.GetBytes(16);
Run Code Online (Sandbox Code Playgroud)
它说它不是一个有效的初始化向量.
我如何解决它?
TripleDES的块大小为64位.您正在尝试设置128位.
这应该工作:
tripledes.IV = pdb.GetBytes(8);
Run Code Online (Sandbox Code Playgroud)