A simple and opinionated AES encrypt / decrypt Ruby gem that just works.
AESCrypt uses the AES-256-CBC cipher and encodes the encrypted data with base64.
A corresponding gem to easily handle AES encrypt/decrypt in Objective-C is available at http://github.com/Gurpartap/AESCrypt-ObjC.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install aescrypt
message = "top secret message" password = "p4ssw0rd"
encrypted_data = AESCrypt.encrypt(message, password)
message = AESCrypt.decrypt(encrypted_data, password)
encrypted_data = encrypt_data(data, key, iv, cipher_type)
decrypted_data = decrypt_data(encrypted_data, key, iv, cipher_type)
Corresponding usage in Objective-C
The AESCrypt Objective-C class understands what you're talking about in your Ruby code. The purpose of the Ruby gem and Objective-C class is to have something that works out of the box across the server (Ruby) and client (Objective-C). However, a standard encryption technique is implemented, which ensures that you can handle the data with any AES compatible library available across the web. So, you're not locked-in.
Here's how you would use the AESCrypt Objective-C class:
NSString *message = "top secret message"; NSString *password = @"p4ssw0rd";
NSString *encryptedData = [AESCrypt encrypt:message password:password];
NSString *message = [AESCrypt decrypt:encryptedData password:password];
See the Objective-C class README at http://github.com/Gurpartap/AESCrypt-ObjC for more details.
The encrypt_data and decrypt_data methods are Copyright (c) 2007 Brent Sowers and have been included in the gem with prior permission.
Copyright (c) 2012 Gurpartap Singh
See LICENSE for license terms.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Added some feature')
- Push to the branch (
git push origin my-new-feature)
- Create new Pull Request