in reply to Encrypt using AES(block size 128-bit) in CBC

(Update: no, this isn't it. see my other answer)

Looks like you're providing the key and the iv in hex format, whereas I'm pretty sure you need to provide the actual key/iv bytes directly (that your encrypted string is coming out in hex format is because you're using encrypt_hex) which means you instead need something like

-key => pack('H32',$key), -iv => pack('H32',$iv),
but I don't know for sure since the hex you've provided for your key/iv only specifies 8 bytes and AES requires 16.

Replies are listed 'Best First'.
Re^2: Encrypt using AES(block size 128-bit) in CBC
by u65 (Chaplain) on Jun 14, 2015 at 13:16 UTC

    But aren't they just strings of 16 one-byte chars?

      strings of 16 bytes, yes. But the question is which 16 bytes? Each byte can be anything in the {0..255} range; you're not limited to those that are printable or those that are hexdigits (i.e., [0-9a-f] = {48..57,97..102})

      So when you supply a key that starts with '55..', as the code was originally written, that specifies a key whose first two bytes are both asc('5') = 53, but if what was intended was a key whose first byte is 0x55 = 85, then you need to pack and you also need to find out what the other 8 bytes of the key were supposed to be (if the goal is to produce a particular ciphertext).

      And I could be wrong about what was intended, but it's suspicious to me that they're using a key consisting entirely of hex-digit bytes (which, for one thing, would be a horrible choice of key from a security point of view; even if it is only an example you don't want to give people the idea that that's how you choose your keys)