質問: Convert.ToBase64String(xx); // this changes every time: b64.Dump(); ``` 私は、クラスが出力に影響を与えるキーと同様に何か他のものを使用しているに違いないと思っていますが、私は何を見つけるのか苦労しています。
回答: 暗号テキストが暗号化されるたびに暗号テキストが異なるということは、それが一貫して復号化できないことを意味するものではありません。 これは確かに、この動作を持つことができる優れた暗号アルゴリズムの兆候であり、さまざまな攻撃に対してより弾力性があります。 これは、暗号化ロジックがプロセス内でランダム性を導入するためです。たとえば、クリアテキスト自体の前にいくつかのランダムなバイトを系統的に追加することによってです。暗号文全体が復号化された後、解読ロジックがこれらのバイトを無視することを知っている限り、元のクリアテキストを再現することができます。 このb64テキストの*任意の*インスタンスを取得し、逆のプロセスに提出し、生成された "rgb"がすべてのケースで "Hello World"であることを確認することをお勧めします。