私は多くの異なるC#暗号化の例を見てきました。ほとんどの例では、暗号化キーと初期化ベクトル(IV)がバイト配列として暗号化/復号化メソッドに渡されます。暗号化キーとIVを文字列として保存/変換する
私はキーとIVを文字列として保存したいと思います。ハードウェアセキュリティモジュールのキーとSQL ServerデータベースのnvarcharとしてのIV
キーとIVを文字列として正しく変換する方法については、私は悩み続けています。いくつかの例ではBase64エンコーディングを使用すると言い、他の例ではEncoding.UTF8
を使用しています。私は、暗号化方式にIVのこの文字列表現を渡し、その後に戻ってそれを変換するときにここで
using (var aesProvider = new AesCryptoServiceProvider())
{
aesProvider.GenerateIV();
var ivBase64 = Convert.ToBase64String(aesProvider.IV);
return ivBase64;
}
IVを生成し、Base64文字列に変換例です。バイト配列は、IVが適切なサイズではないことを示す次のコードは失敗します。
byte[] initVectorBytes = Encoding.UTF8.GetBytes(initializationVector);`
// intermediate code excluded for brevity
ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes, initVectorBytes);
暗号化キーとIVをバイト配列と文字列表現の間で前後に変換する標準的な方法はありますか?
[これは、暗号化で最高の答えです](http://stackoverflow.com/a/10366194/542251)私が見つけました。私は基本的にこのコードを使っています。それは文字列を受け入れる – Liam
@ Liam - すばらしい例をありがとう!どのコード例を使用していますか?束がリストされています。 – webworm
それは異なります!私は最近、SimpleDecryptWithPasswordを使用しました。私はセキュリティに関して心配していませんでした。私は主にデータを難読化したかったのです。使用する方法は、データの安全性をどの程度確保するかによって異なります。 – Liam