title: OpenResty lua-resty-string: Unable to decrypt cipher encrypted by Crypto-JS (AES default)
body: <p><a href="https://github.com/openresty/lua-resty-string" rel="nofollow noreferrer">https://github.com/openresty/lua-resty-string</a></p>
  
  <p>I am not able to decrypt back what was encrypted using Crypto-JS in browser Javascript / NodeJS:</p>
  
  <pre><code>// Encrypt
  var ciphertext = CryptoJS.AES.encrypt('testingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtesting', '&amp;&amp;nH8P3bxk+?C4gR');
  
  // Decrypt
  var bytes  = CryptoJS.AES.decrypt(ciphertext.toString(), '&amp;&amp;nH8P3bxk+?C4gR');
  var plaintext = bytes.toString(CryptoJS.enc.Utf8);
  
  console.log(plaintext);
  </code></pre>
  
  <p>I can decrypt it in Java using:</p>
  
  <pre><code>Cipher.getInstance("AES/CBC/PKCS5Padding")
  </code></pre>
  
  <p>But, I get</p>
  
  <pre><code>nil
  </code></pre>
  
  <p>when I try to do it with resty.aes. Here is the code:</p>
  
  <pre><code>local aes = require "resty.aes"
  local cipher = aes.cipher(256)
  local aes_256_cbc_md5 = aes:new('&amp;&amp;nH8P3bxk+?C4gR', nil, cipher)
  
  local cipherText = 'U2FsdGVkX1859eIyt4M7VHNBl9BGMdsemPYAADKmqs9sltwKINfzVMci0Vw1NLr73Iti67zQ0+JoqVcL59Gcp+4R5NY6wg2n3r0wqLcQRc7PkIGpgup1UJp4DzhXSIGHz08Eu/nEbt3jAh3S4GVUoVFbXLluf/BvedTGdsqcN2EPL9S/WQOc5QDyl9OQjpBl+QS56nWL0DO6iR/6CIoEuQ+zC/7KTpBw2jQf8sxuDNptZzwKLlDi2sWSaeCkvPj+m8zheAlnZzVc+L5JeLdcx7WkIRQImNs9P5bkhXmiK2nZnw4yco3QHbzRkRBJiB3HgdYDauHsuKmR21zv9VLjAcGTrZjiUbtrBfuTRawKOiAFm599Inbq+Ugu9n4RelQ2CTdxwDfe3ZE3kscP3dyAmg=='
  ngx.say(aes_256_cbc_md5:decrypt(cipherText))
  </code></pre>
  
  <p>What do I need to change with the server side decryption?</p>