Encrypting files in Rails

So far the tutorials I've seen are for encrypting text and then decrypting it back. So for example you have a plaintext = "some text"

you encrypt it and then you decrypt it depending on how you encrypted it.

What I am looking for is to encrypt a whole file and then store it. for example I allow my users to upload .doc/.xls files. I want to encrypt those files so I would not store them like that, and in case a user wants to download it back the app will decrypt it and then send it to user.

How can I do this ?

Demec wrote:

So far the tutorials I've seen are for encrypting text and then decrypting it back. So for example you have a plaintext = "some text"

you encrypt it and then you decrypt it depending on how you encrypted it.

What I am looking for is to encrypt a whole file and then store it. for example I allow my users to upload .doc/.xls files. I want to encrypt those files so I would not store them like that, and in case a user wants to download it back the app will decrypt it and then send it to user.

How can I do this ?

There is no distinction between character based data or binary data in the world of encryption. All that's important is that you take a string of bits, mix it with some pseudo-randomly generated bits, based on a known algorithm, and store a string of bits.

In cryptography terms the string "some text" in your example would be called the cleartext. Not to be confused with plaintext. Cleartext can just as easily be binary data instead of a string. The algorithm doesn't care at all what makes up those cleartext bits.

Robert Walker wrote:

There is no distinction between character based data or binary data in the world of encryption. All that's important is that you take a string of bits, mix it with some pseudo-randomly generated bits, based on a known algorithm, and store a string of bits.

Small clarification: I should have said a "stream of bits" rather than "string of bits."