私の問題は実際にはVB.NETでAESを使用する方法よりも少し複雑です。私が実際にやっていることは、Javaアプリケーション内のVB.NETでAESを使用することですJACOB。しかし今のところ、私が焦点を当てる必要があるのは、AESの実装自体です。VB.NETでAesCryptoServiceProviderを使用する
はここでいったん戻ってJavaコードで自分の暗号化コード
Public Function EncryptAES(ByVal toEncrypt As String, ByVal key As String) As Byte()
Dim keyArray = Convert.FromBase64String(key)
Dim toEncryptArray = Encoding.Unicode.GetBytes(toEncrypt)
Dim aes = New AesCryptoServiceProvider
aes.Key = keyArray
aes.Mode = CipherMode.ECB
aes.Padding = PaddingMode.ISO10126
Dim encryptor = aes.CreateEncryptor()
Dim encrypted = encryptor.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length)
aes.Clear()
Return encrypted
End Function
だ、私は、16進数の文字列にバイト配列を回します。
さて、プロセスを逆にする、ここに私の復号化コードが
だPublic Function DecryptAES(ByVal toDecrypt As String, ByVal key As String) As Byte()
Dim keyArray = Convert.FromBase64String(key)
Dim toDecryptArray = Convert.FromBase64String(toDecrypt)
Dim aes = New AesCryptoServiceProvider
aes.Key = keyArray
aes.Mode = CipherMode.ECB
aes.Padding = PaddingMode.ISO10126
Dim decryptor = aes.CreateDecryptor()
Dim decrypted = decryptor.TransformFinalBlock(toDecryptArray, 0, toDecryptArray.Length)
aes.Clear()
Return decrypted
End Function
私は復号化コードを実行すると、私は次のエラーメッセージ
パディングは無効であり、削除することはできませんを取得します。
暗号化されたデータをどこかに保存してから、その保存されたデータをJavaで渡した後に解読関数の呼び出しと比較しようとしましたか? –
また、どのバージョンのvb.net/visual studio? –
Visual Studio 2008 Pro 解読からテストへの戻り値が得られないため、提案しているテストを実行できません。私のVB復号化機能によってエラーがスローされています。 –