私のアプリケーションでは、暗号化と復号化を使用しています。
文字列をローカルデータベースに入力する前に暗号化し、データベースからデータを取得した後、それを復号化してアプリケーションで使用しています。正常に動作しています。以下のリンクから暗号化/復号化を使用しました
暗号化時:
NSString *myKey=@"any string more than 8 char";
NSData *data ;
NSData *encryptedData;
NSString *encryptPassword,*encryptPasscode;
// 1) Encrypt
data = [password dataUsingEncoding: NSASCIIStringEncoding];
encryptedData = [data AESEncryptWithPassphrase:myKey];
// 2) Encode Base 64
[Base64 initialize];
encryptPassword = [Base64 encode:encryptedData];
復号時:
NSData *decryptedData;
NSData *b64DecData;
field1 = (char *) sqlite3_column_text(selectPasscodeStatement, 0);
NSString *fieldStr1 = [[NSString alloc] initWithUTF8String: field1];
// 3) Decode Base 64
b64DecData = [Base64 decode:fieldStr1];
// 4) Decrypt
decryptedData = [b64DecData AESDecryptWithPassphrase:myKey];
retrivedPasscode = [[NSString alloc] initWithData:decryptedData encoding:NSASCIIStringEncoding];
しかし、同じプロジェクトの staticLibrary を作成しました。その staticLibrary を別のプロジェクトで使用しています。そのプロジェクトを実行すると、暗号化時に以下のエラーが発生しました
-[NSConcreteMutableData AESEncryptWithPassphrase:]: 認識されないセレクターがインスタンス 0x6a3fe40 に送信されました