On my website I am using AES 128bit encryption/decryp开发者_Python百科tion of a string. I encrypt a string in Java and I want to decrypt it in a flash application that I run on the same webpage, to which I pass the encrypted string as a JavaScript variable.
I generate a 128bit key using Java. I can do encryption/decryption in Java successfully. Java outputs byte-array (byte[]) for the key, encrypted and decrypted result. I use Base64 encoding/decoding to successfully get the string equivalent.
On the flash side I use the Java generated key (Base64) to do the decryption of the string and I noticed that it is not correctly decrypted. The cryptography library that I use in flash is as3crypto. When I test this on the demo page of the as3crypto project using my Java generated key (Base64) I noticed that I am not getting the same result using all possible modes (CBC, CFB etc.).
What is the possible cause for this error? Am I doing something wrong?
Regards
Hard to say without taking a look at your code but...
Few things to notice.
AES encrypted data to be interchangeable between languages there are few things to consider.
- Same encryption algorithm (duh!)
- Same size of the key (128/192/256)
- Same key
- Same Mode of operation (ECB/CBC/CTS etc)
- Same initialization vector (For some modes of operations, doesn't apply for CTS)
- Same Padding scheme
- Character Encoding
Are you sure that all of these are the same between both Java and ActionScript?
精彩评论