Мне нужно зашифровать строку с помощью SuiteScript, отправить ее на веб-службу, написанную на Java, и расшифровать ее там.Шифрование в NetSuite Suitescript и дешифрование в Java-приложении
Использование SuiteScript Я могу зашифровать и расшифровать без каких-либо проблем. Но когда я использую один и тот же ключ в java, я получаю разные ошибки.
var x = "string to be encrypted";
var key = 'EB7CB21AA6FB33D3B1FF14BBE7DB4962';
var encrypted = nlapiEncrypt(x,'aes',key);
var decrypted = nlapiDecrypt(encrypted ,'aes',key);
^^ работает отлично ^^
Код в Java
final String strPassPhrase = "EB7CB21AA6FB33D3B1FF14BBE7DB4962"; //min 24 chars
SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");
SecretKey key = factory.generateSecret(new DESedeKeySpec(strPassPhrase.getBytes()));
Cipher cipher = Cipher.getInstance("DESede");
cipher.init(Cipher.DECRYPT_MODE, key);
String encrypted = "3764b8140ae470bda73f7ebed3c33b0895f70c3497c85f39043345128a4bc3b3";
String decrypted = new String(cipher.doFinal(DatatypeConverter.parseBase64Binary(encrypted)));
System.out.println("Text Decryted : " + decrypted);
С выше коде, я получаю исключение javax.crypto.BadPaddingException: Given final block not properly padded
Ключ был сгенерирован с помощью OpenSSL
openssl enc -aes-128-ecb -k mypassphrase -P