0

Keychain、Security.framework、および Apple の KeychainWrapper クラスを使用して、ユーザーのパスワードをアプリに安全に保存する iOS アプリに取り組んでいます。

このアプリにより、ユーザーはアカウントを作成できます。ユーザーがアカウントを作成すると、アプリは暗号化されたバージョンのユーザー パスワードをサーバーに送信する必要があります (POST 要求)。

これはすべて機能しますが、データを安全に保存して取得できるという問題がありますが、データの暗号化されたバージョンを取得する方法がわかりません。

つまり、ユーザーがアカウントを作成し、パスワードを「hello」に設定したとします。次に、それをキーチェーンに安全に保存するようにアプリを設定します。

そのため、iOS はそれを暗号化し、キーチェーンに保存します。この質問のために、暗号化されたバージョンが「h235llo」であるとしましょう。

サーバーにパスワードを送信したいとき、「こんにちは」を送信したくありません。「h235llo」(暗号化された文字列)を送信したい。暗号化された文字列にアクセスするにはどうすればよいですか?

キーチェーンにアクセスするために使用しているコードは次のとおりです。

ユーザー名/パスワードをキーチェーンに安全に保存するために、次のようにしています。

KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"UserLoginData" accessGroup:nil];
[keychain setObject:_username.text forKey:(__bridge id)kSecAttrAccount];
[keychain setObject:_password.text forKey:(__bridge id)kSecValueData];

そして、キーチェーンからユーザー名/パスワードを安全に取得するために、私はこれを行っています:

NSString *secureUser = [keychain objectForKey:(__bridge id)kSecAttrAccount];
NSString *securePass = [keychain objectForKey:(__bridge id)kSecValueData];

この問題について何か助けていただければ幸いです。

時間をありがとう、ダン。

4

2 に答える 2