Skip to content

Instantly share code, notes, and snippets.

@kennydude
Created July 14, 2012 14:31
Show Gist options
  • Save kennydude/3111592 to your computer and use it in GitHub Desktop.
Save kennydude/3111592 to your computer and use it in GitHub Desktop.
Encrypt from Java and decrypt on Node.js
// Encrypt where jo is input, and query is output and ENCRPYTION_KEy is key
byte[] input = jo.toString().getBytes("utf-8");
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] thedigest = md.digest(ENCRYPTION_KEY.getBytes("UTF-8"));
SecretKeySpec skc = new SecretKeySpec(thedigest, "AES/ECB/PKCS5Padding");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, skc);
byte[] cipherText = new byte[cipher.getOutputSize(input.length)];
int ctLength = cipher.update(input, 0, input.length, cipherText, 0);
ctLength += cipher.doFinal(cipherText, ctLength);
String query = Base64.encodeToString(cipherText, Base64.DEFAULT);
var decipher = crypto.createDecipher('aes-128-ecb', encryption_key);
chunks = []
chunks.push( decipher.update( new Buffer(fullBuffer, "base64").toString("binary")) );
chunks.push( decipher.final('binary') );
var txt = chunks.join("");
txt = new Buffer(txt, "binary").toString("utf-8");
// where encryption_key = key, fullBuffer is the input and txt is output
@farhan-ct
Copy link

I've this error

Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length

@monossido use this one instead

var decipher = crypto.createDecipher('aes-128-ecb', key); return decipher.update(encrypted, 'base64', 'utf8') + decipher. Final('utf8');

I am getting this error

Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment