내 문제는 VB.NET에서 AES를 사용하는 것보다 실제로 좀 더 복잡합니다. 실제로 내가하려고하는 것은 Java 응용 프로그램 내에서 VB.NET의 AES를 사용하는 것입니다. 야곱. 그러나 지금 당장은 AES 구현 그 자체에 집중해야합니다.VB.NET에서 AesCryptoServiceProvider 사용
여기 한 번 다시 자바 코드 내 암호화 코드
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 암호 해독 기능에 의해 오류가 발생하고 있습니다. –