RNCryptor密码加密
问题描述:
我以下面的代码为例。请帮助我,如果我错了。RNCryptor密码加密
- (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加密钥匙串中用户的用户名和密码。
我不确定在RNEcryptor方法中使用kPassword
的密码。我原本以为使用由UUID, username and a random 40 character salt hash
组成的SHA256散列将密码加密到钥匙串中。我后来发现RNCryptor,我想知道是否可以使用SHA256 hash
作为kPassword
还是有其他的选择吗?
答
试试这个
从https://github.com/Gurpartap/AESCrypt-ObjC
添加AESCrypt-ObjC主现在这些添加到顶部
#import "AESCrypt.h"
然后将这些
NSString *message = @"yourStringtobeencrypted";
NSString *password = @"yourpassword";
NSString *encryptedData = [AESCrypt encrypt:message password:password];
而且你去那里。 。解密
NSString *message1 = [AESCrypt decrypt:encryptedData password:password];
:-)
是你想节省自己的应用程序中使用/商店*** ***所有用户密码,或者只是那些,还是? –
我只想将用户创建的帐户密码存储到钥匙串中,以便我可以用于本地网络网页和自动登录到应用程序。 – Omar
此处没有任何内容访问钥匙串(您计算密码,加密字符串“Data”然后丢弃结果)。目前还不清楚为什么你在这里进行哈希或加密。如果你想在钥匙串中存储东西,那么有很多好的钥匙串包装可用。例如:https://github.com/secondgear/SGKeychain和https://github.com/nicklockwood/FXKeychain。 –