Я хочу зашифровать и расшифровать строку с определенной солью. Но результат должен быть таким же, если код выполняется в Java и Adobe Flex.
Основная цель: приложение в Adobe Flex будет генерировать строку, которая может быть расшифрована на сервере с использованием Java.
Я использую эту гибкую библиотеку
http://crypto.hurlant.com/demo/
Попробуйте открыть вкладку «Секретный ключ». Я хочу использовать шифрование AES, «CBC» или «PKCS5».
var k:String = "1234567890123456";
var kdata:ByteArray = Hex.toArray(k);
var txt:String = "hello";
var data:ByteArray = Hex.toArray(Hex.fromString(txt));;
var name:String = "simple-aes-cbc";
var pad:IPad =new PKCS5();
var mode:ICipher = Crypto.getCipher(name, kdata, pad);
pad.setBlockSize(mode.getBlockSize());
mode.encrypt(data);
encrypted.text=Hex.fromArray(data);
trace(Hex.fromArray(data));
А вот код в Java
String plaintext = "hello";
String key = "1234567890123456";
SecretKey keyspec = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE,keyspec);
byte[] encrypted = cipher.doFinal(plaintext.getBytes());
BASE64Encoder base64 = new BASE64Encoder();
String encodedString = base64.encode(encrypted);
System.out.println(encodedString);
Почему результат не такой же?
Ребята, можете ли вы предоставить пример с одинаковым результатом как java, так и flex (шифрование и дешифрование)? И если я хочу изменить параметр, например, с cbc на ebc, какую строку нужно изменить?
Спасибо!