奇妙な問題に直面しています。cfb モードで aes 暗号化を使用しています。順調に進んでいます。固定 IV で暗号化をテストしました。しかし、ランダム IV を使用すると問題が発生します。詳しくいきます。
function Random16DigitsString: AnsiString;
var
i: Integer; c0: byte;
begin
Randomize;
c0:=ord('0');
SetLength(Result, 16);
Result[1] := char(c0+Random(9)+1);
for i:=2 to 16 do Result[i] := char(c0+Random(10));
end;
上記のコードのサンプル出力は 8229343736510872 です。
この関数を暗号化フェーズで使用すると問題ありませんが、同じキーを使用してファイルを復号化すると、出力がガベージになります。しかし、暗号化フェーズでこのキーをハードコーディングすると、復号化が正常に行われます。
私が欠けているもの。私は単純な乱数ジェネレーターを使用しています。