RNEncryptor
次のように、暗号化と復号化にandクラスを使用してRNDecryptor
います。
NSData *encryptedData = [RNEncryptor encryptData:input
withSettings:kRNCryptorAES256Settings
password:thePassword
error:nil];
NSData *output = [RNDecryptor decryptData:encryptedData
withSettings:kRNCryptorAES256Settings
password:thePassword
error:nil];
アプリで初めてデータを暗号化する必要があるときは、RNCryptor
次のようにクラスを使用してパスワードを生成します。
NSData *thePasswordData = [RNCryptor randomDataOfLength:32];
NSString *thePassword = [aesPasswordData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
この生成されたパスワードをアプリのキーチェーンに保存し、その後のすべての暗号化と復号化に使用します。
これは暗号化/復号化の良い戦略ですか、それとも誰かがそれに欠陥を見ることができますか? 代わりに、AES キーを生成してキーチェーンに保存し、パスワードではなくそれを使用する必要がありますか?
編集: Rob Napierの回答に基づいNSProcessInfo
て、クラスの使用からクラスの使用にパスワードを生成する方法を上記で変更しました。RNCryptor
それはさておき、AESキーではなくパスワードを使用するという一般的な戦略が正しく安全であるかどうかを知りたいと思っています。