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

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

  • Comment on Re^2: Encrypt using AES(block size 128-bit) in CBC

Replies are listed 'Best First'.
Re^3: Encrypt using AES(block size 128-bit) in CBC
by wrog (Friar) on Jun 14, 2015 at 18:17 UTC
    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)