Я использую справочную реализацию Рейндаля Фрица Шнайдера. Я хочу расшифровать результат в C #.
Входные переменные, представленные в функции Javascript Rijndael:
function rijndaelEncrypt(plaintext, key, mode) {}
где незашифрованный текст - это текст, который должен быть зашифрован, ключ - это ключ шифрования, а режим выбирает ECB или CBC. Режим, который мы используем - ECB.
Теперь, для реализации Microsoft Rijndael, что я должен использовать для вектора инициализации, чтобы расшифровать это?
Для справки, все шифрование javascript выглядит следующим образом.
function rijndaelEncrypt(plaintext, key, mode) {
var i, aBlock;
var bpb = blockSizeInBits / 8; // bytes per block
var ct; // ciphertext
if (!plaintext || !key)
return;
if (key.length*8 != keySizeInBits)
return;
if (mode == "CBC")
ct = getRandomBytes(bpb); // get IV
else {
mode = "ECB";
ct = new Array();
}
// convert plaintext to byte array and pad with zeros if necessary.
plaintext = formatPlaintext(plaintext);
var expandedKey = new keyExpansion(key);
for (var block=0; block<plaintext.length / bpb; block++) {
aBlock = plaintext.slice(block*bpb, (block+1)*bpb);
if (mode == "CBC")
for (var i=0; i<bpb; i++)
aBlock[i] ^= ct[block*bpb + i];
ct = ct.concat(AESencrypt(aBlock, expandedKey));
}
return ct;
}
Спасибо. Помощь очень ценится.