6

Web サーバーと通信する iPhone アプリがあります。アプリを起動するとき、ユーザーはユーザー名とパスワードで認証する必要があります。アプリと Web サーバー間の通信は保護されています (HTTPS) が、Web サーバーにクリア パスワードを送信したくありません。パスワードの「署名」だけを送信したいと思います (署名はWeb サーバー上のデータベース)。

IOS でこの「署名」を作成するための最良の解決策は何ですか? MD5 などを使用する必要がありますか?

この署名を作成するには、外部ライブラリを取得する必要がありますか?それとも、IOS SDK の SecKeyEncrypt を使用して行うことができますか?

長期的には、Android でアプリを実行する予定であり、IOS と Android で同じ署名を生成できる必要があります。

ご協力いただきありがとうございます、

セバスチャン。

4

2 に答える 2

1

md5 は最良のアイデアではありません。現在、それらを復号化するための非常に高速なレインボー テーブルがたくさんあります。

AES256 を使用することをお勧めします。iOS ではNSData+CommonCryptoを使用すると、簡単にそれを行うことができます。

NSString* encryptionPass = @"myEncryptionPass";
NSData* passData = [userPassword dataUsingEncoding:NSStringEncodingConversionAllowLossy];
NSError* error = nil;
NSData* encryptedPassData = [passData AES256EncryptedDataUsingKey:encryptionPass error:&error];
if(!error)
{
     NSString* encryptedString = [[NSString alloc] initWithData:encryptedPassData encoding:NSUTF8StringEncoding]
}
于 2013-10-17T20:17:30.887 に答える