This repository has been archived by the owner. It is now read-only.
A simple and opinionated AES encrypt / decrypt Objective-C class that just works.
Switch branches/tags
Nothing to show
Clone or download
Gurpartap Merge pull request #3 from lumoslabs/66177f5839937b416e32f697c8fc76ad…

AESCrypt should inherit from NSObject, even if only contains static methods (closes #3)
Latest commit 6fa7a4f Dec 11, 2012

AESCrypt-ObjC - Simple AES encryption / decryption for iOS and OS X

AESCrypt is a simple to use, opinionated AES encryption / decryption Objective-C class that just works.

AESCrypt uses the AES-256-CBC cipher and encodes the encrypted data with base64.

A corresponding gem to easily handle AES encryption / decryption in Ruby is available at


Add this line to your class:

#import "AESCrypt.h"


NSString *message = @"top secret message";
NSString *password = @"p4ssw0rd";


NSString *encryptedData = [AESCrypt encrypt:message password:password];


NSString *message = [AESCrypt decrypt:encryptedData password:password];

Common sense

AESCrypt includes Base64 and Crypto extensions for NSData and NSString classes. If you're already using an extension that provides these, there is no need to use the included classes. Change the code in the AESCrypt class to correspond to your existing implementation of these extensions.

Corresponding usage in Ruby

The AESCrypt Ruby gem, available at, understands what you're talking about in your Objective-C 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 Ruby gem:

message = "top secret message"
password = "p4ssw0rd"


encrypted_data = AESCrypt.encrypt(message, password)


message = AESCrypt.decrypt(encrypted_data, password)

See the Ruby gem README at for more details.


NSData+CommonCrypto is Copyright (c) 2008-2009, Jim Dovey

AESCrypt is Copyright (c) 2012 Gurpartap Singh

See LICENSE for license terms.