System.Security.Cryptography.TripleDES позволяют мне использовать заполнение нулями следующим образом:
static TripleDES CreateTripleDES(byte[] key, byte[] iv)
{
TripleDES des = new TripleDESCryptoServiceProvider();
des.Key = key;
des.IV = iv;
des.Mode = CipherMode.CBC;
des.Padding = PaddingMode.Zeros;
return des;
}
Теперь перейдите на использование OpenSSL
CipherContext cc = new CipherContext(Cipher.DES_EDE3_CBC);
byte[] des3 = cc.Encrypt(msg2, tripleKey, tripleIv, 0);
//public byte[] Encrypt(byte[] input, byte[] key, byte[] iv, int padding);
Проблема в том, что когда я шифрую строку двумя способами, я получаю два результата различия:
first method (OK): 90dd67c475dc3a8ce3d0c8927ce43758715888c16688c9828ac92aa86019126297b7ccb80a4729224acd07285b85a847e48fb01b3da4639c
second method (NOT OK): 90dd67c475dc3a8ce3d0c8927ce43758715888c16688c9828ac92aa86019126297b7ccb80a4729224acd07285b85a847b77485eb0a1f214e
Полагаю, это из-за нулевого отступа. Но я не знаю, как использовать заполнение нулями в openssl.
Любая помощь приветствуется.