1

例として次のコードを使用しています。私が間違っている場合は助けてください。

- (void)storeToKeychain {

kPassword = [self computeSHA256DigestForString:[NSString stringWithFormat:@"%@%i%@", [username stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], pinHash, SALT_HASH];


NSData *data = [@"Data" dataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
NSData *encryptedData = [RNEncryptor encryptData:data
                                withSettings:kRNCryptorAES256Settings
                                      password:kPassword
                                         error:&error];
}

- (NSString*)computeSHA256DigestForString:(NSString*)input {

const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];
NSData *data = [NSData dataWithBytes:cstr length:input.length];
uint8_t digest[CC_SHA256_DIGEST_LENGTH];

// This is an iOS5-specific method.
// It takes in the data, how much data, and then output format, which in this case is an int array.
CC_SHA256(data.bytes, data.length, digest);

// Setup our Objective-C output.
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH * 2];

// Parse through the CC_SHA256 results (stored inside of digest[]).
for(int i = 0; i < CC_SHA256_DIGEST_LENGTH; i++) {
    [output appendFormat:@"%02x", digest[i]];
}

return output;
}

私のアプリには、セットアップとログインのページがあります。ユーザーがアカウントを作成するたびに、パスワードを暗号化されたキーチェーンに保存する必要があります。セキュリティを強化するために、おそらくユーザー名を行う必要があります。そのため、RNCryptor を使用して、ユーザーがアカウントを作成するときにキーチェーンでユーザーのユーザー名とパスワードを暗号化したいと考えています。

kPasswordRNEcryptor メソッドで使用するパスワードがわかりません。UUID, username and a random 40 character salt hash私は当初、パスワードをキーチェーンに暗号化するためにで構成される SHA256 ハッシュを使用することを考えていました。後で RNCryptor を見つけましたが、代わりにSHA256 hashasを使用できるかどうか、kPasswordまたは他の代替手段があるかどうか疑問に思っていました。

4

1 に答える 1

3

これを試して

https://github.com/Gurpartap/AESCrypt-ObjCから AESCrypt-ObjC-master を追加します

これらを一番上に追加します

#import "AESCrypt.h"

次にこれらを追加します

NSString *message = @"yourStringtobeencrypted";
NSString *password = @"yourpassword";
NSString *encryptedData = [AESCrypt encrypt:message password:password];

そして、そこに行きます..復号化のために

NSString *message1 = [AESCrypt decrypt:encryptedData password:password];

:-)

于 2015-02-04T06:14:48.913 に答える