難読化によるセキュリティに関するいくつかの記事を読むことをお勧めします。これは本質的にあなたが達成しようとしていることであり(少なくともすべての推奨事項が言っていることです)、最終的には安全ではありません。
ただし、iOSのサンドボックスは、最初で最も効果的なセキュリティ形式です。
次に、入力の検証は、アプリに必要な次の最も重要なセキュリティ機能になります。すべての入力(ユーザーが入力した情報から、スキームを介したアプリの起動へのネットワーク応答まで)を検証しない限り、暗号化をすべて行うことは何の意味もありません。
結局、安全な暗号化は、必要な場合、ハードコアでない(またはハードコーディングを難読化しない)場合にのみ安全です。mprivatは正しいので、ユーザーが生成したデータ(ログイン)、公開鍵暗号化(含まれていない秘密鍵のみが復号化できる)、またはトランスポートにSSLを使用するサーバー側暗号化のいずれかを使用する必要があります。
また、キーチェーンAPIを使用するデバイスでのみ安全なデータを維持する場合は、特に、アイテムを取得するためにユーザーがログインする必要があるフォームを使用するようにしてください。
デバイスと別のデバイス(サーバーなど)の両方で復号化されるデバイスで暗号化するデータがある場合は、基本的なアーキテクチャ上の欠陥があります。暗号化-復号化は、クライアントクライアント(別名、ユーザーのデバイスのみ)またはクライアントサーバー(ユーザーデバイスからサーバー、またはサーバーからユーザーデバイス)のみであることが非常に重要です。2つを混在させると、脆弱性が発生します。私はここで特に同じ暗号化メカニズムを意味しています。クライアントクライアントとクライアントサーバーに別々の暗号化を使用することは問題ありません(場合によっては必要です)。
安全なコードを書く必要がある人のために必読です:http: //www.amazon.com/gp/aw/d/0735617228