AuthenticatedAesCng
このサイトから呼び出されたクラスを使用して、GCMモードでAES256暗号化を使用しています: CLRセキュリティ
暗号ストリームを介して平文を書き込んだ後、IV、TAG、および暗号化されたデータを手動で連結し、その値を返します。
cs
クリプトストリームとms
メモリストリームです
// Write through and retrieve encrypted data.
cs.Write(message, 0, message.Length);
cs.FlushFinalBlock();
byte[] cipherText = ms.ToArray();
// Retrieve tag and create array to hold encrypted data.
byte[] authenticationTag = encryptor.GetTag();
byte[] encrypted = new byte[cipherText.Length + aes.IV.Length + authenticationTag.Length];
// Set needed data in byte array.
aes.IV.CopyTo(encrypted, 0);
authenticationTag.CopyTo(encrypted, IV_LENGTH);
cipherText.CopyTo(encrypted, IV_LENGTH + TAG_LENGTH);
// Store encrypted value in base 64.
return Convert.ToBase64String(encrypted);
これは、GCMモードでAES暗号を使用する正しい方法ですか?これらすべての値を手動でまとめる必要がありますか、それとも自動的に行われ、それを見逃しただけですか?