我有一个 128 位 3DES 密钥 1915372928A30803A25B0659A4DD6525,如何将密钥拆分为 3 个组件并计算每个组件的 KCV?我想做类似于下面的在线工具
我用来生成 3DES 密钥的代码
public byte[] GenerateThreeDesKey()
{
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] tripleDesKey = new byte[16];
rng.GetBytes(tripleDesKey);
for (var i = 0; i < tripleDesKey.Length; ++i)
{
int keyByte = tripleDesKey[i] & 0xFE;
var parity = 0;
for (int b = keyByte; b != 0; b >>= 1)
parity ^= b & 1;
tripleDesKey[i] = (byte)(keyByte | (parity == 0 ? 1 : 0));
}
return tripleDesKey;
}
拿到key后,如何将key拆分成3个分量,计算出KCV?