暗号化には Rijndael (AES アルゴリズムとして) を使用しています。値 (オブジェクトのプロパティ) を暗号化し、オブジェクトを xml にシリアル化し、Web サービスを介して xml をレシーバーに送信します。データの暗号化に使用した暗号化された対称キーを渡したいです。しかし、どのキーを渡す必要がありますか? 私の復号化アルゴリズムは次のようになります(vb.net):
Public Function Encrypt(ByVal stringToEncrypt As String) As String
Dim textConverter As New ASCIIEncoding()
Dim myRijndael As New RijndaelManaged()
Dim encrypted() As Byte
Dim stringToEncryptAsByte() As Byte
Dim encryptedAsString As String
Dim key() As Byte
Dim IV() As Byte
' Set symetric key size og chiper mode
myRijndael.Mode = CipherMode.CBC
myRijndael.KeySize = 128
' Create a new key and initialization vector.
myRijndael.GenerateKey()
myRijndael.GenerateIV()
' Get the key and IV.
key = myRijndael.Key
IV = myRijndael.IV
' Get an encryptor.
Dim encryptor As ICryptoTransform = myRijndael.CreateEncryptor(key, IV)
' Encrypt the data.
Dim msEncrypt As New MemoryStream()
Dim csEncrypt As New CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)
' Convert the data to a byte array.
stringToEncryptAsByte = textConverter.GetBytes(stringToEncrypt)
' Write all data to the crypto stream and flush it.
csEncrypt.Write(stringToEncryptAsByte, 0, stringToEncryptAsByte.Length)
csEncrypt.FlushFinalBlock()
' Get encrypted array of bytes.
encrypted = msEncrypt.ToArray()
encryptedAsString = Convert.ToBase64String(encrypted)
Return encryptedAsString
End Function
暗号化された文字列を復号化したい場合は、キーと IV の両方を使用する必要がありますが、キーの値のみを渡す必要があると思います。これを別の方法で行う必要がありますか、それとも何を渡す必要がありますか? 私の仕様によると、値は AES と 128 ビット キーを使用して暗号化する必要があります。