TripleDES IV适用于C#?

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)

它说它不是一个有效的初始化向量.

我如何解决它?

Gon*_*alo 8

TripleDES的块大小为64位.您正在尝试设置128位.

这应该工作:

tripledes.IV = pdb.GetBytes(8);
Run Code Online (Sandbox Code Playgroud)

  • BlockSize属性(继承自SymmetricAlgorithm基类)告诉您当前使用的算法的块大小(以位为单位).将字节数除以8. (2认同)