in reply to Encrypt Binary Data

Most any encryption routine should handle any type of incoming data. As already stated plaintext refers to the unencrypted data, not text in the sense of ascii. Also, as a side note, you have Crypt::CBC listed in your set of modules.... CBC is cipher block chaining, which is NOT an encryption mechanism, but a way of making blocks of data dependent on each other to avoid replay attacks.

I suppose more explanation might be in order here... We'll use Rijndael as our example as it is not the new Advanced Encryption Standard (AES).

AES is a symmetric key algorithm, this means that the same key encrypts and decrypts (as opposed to asymmetric, or public key algorithms where one key encrypts and the other decrypts).
First you'll need to generate a key of sufficient strength (128 bit should be sufficient in most applications involving symmetric keys, asymmetric algorithms need much larger keys).
Then you'll need to pick your mode. I highly suggest using CBC (Cipher Block Chaining) mode. What this does, is XOR each plaintext block with the previous encrypted block, thus making each block dependent on the previous block so blocks can't be inserted into the final encrypted data. I would also recommend using an Initialization Vector (IV) which is a randomized piece of data to kick it off with (it will need to be prepended to the final data to have any hopes of getting your data back.)

As a side note, the Crypt::CBC module has support for many encryption modules and can handle most of the details for you. Anyways, I hope this was at least somewhat clearer than mud and maybe even helpful.

Let me know if this all needs more explaining or you want more detail on the subject.

cephas