0

私はC#クラスライブラリにAesManagedを実装しようとしていますが、暗号化に慣れていないため、ある程度の成熟したガイダンスが必要でした。私はこのMSDNの例を見てきましたが、文字列をバイナリに暗号化し、バイナリを文字列に逆復号します。

文字列から文字列およびバイナリからバイナリの実装をサポートするためにこれをどのように適応させることができますか?

  • 一部の構成データは、暗号化された文字列としてXMLファイルとレジストリに保存する必要があります。
  • 一部の大きな揮発性データは、バイナリファイルに暗号化する必要があります。

これは急いでいる作業なので、仮定に頼らないのが最善だと思いました。Aesがどのように機能するかわからないのですが、私の要件は、取得するEncoding.ASCII.GetStringのと同じくらい簡単に対処できますEncoding.ASCII.GetBytesか?

4

1 に答える 1

3

うん、それは基本的にあなたがする必要があるすべてです。文字列をバイト配列に変換して暗号化します。ただし、暗号化された結果は「わかりやすい」文字列にはなりません。ほとんどの場合、読み取り不可能なASCIIになります。結果をXMLファイルに保存する場合は、ToBase64を使用して、暗号化された出力をBase64として保存することをお勧めします。値を読み戻すときは、base64から変換し、それを復号化する必要があります。

必要なセキュリティのレベルによっては、通常、AESを使用するだけでは不十分です。AESは機密性(メッセージを読み取ることができない)を提供しますが、整合性(暗号化されたデータの変更)は提供しません。HMACのようなものを使用すると、データを読み取れなくても、誰かがデータを改ざんしたかどうかがわかります。

于 2012-05-06T02:43:46.340 に答える