NSE*_*ion 6 objective-c keychain password-protection
我正在使用KeychainItemWrapper类(在项目中集成.h和.m文件)来保存iOS App Keychain中的密码.还在项目中的任何地方导入了"Security"Framework和"keychianItemWrapper.h"类.(#import,#import"KeychainItemWrapper.h")
我在app delegate方法中使用下面的代码来保存keychain访问中的密码:
if([textfieldPassword1.text isEqual:textfieldPassword2.text]){
NSLog(@"CONGRATS !! PASSCODE MATCHED !!!");
//converting "textfieldPassword1" to NSNumber
NSNumber *textfieldPasscode1Num = [NSNumber numberWithInt:[textfieldPassword1.text intValue]];
//saving passcode to the keychain access
[keychain setObject:textfieldPasscode1Num forKey:(__bridge id)kSecValueData];
// [keychain setObject:[NSNumber numberWithInt:[textfieldPassword1.text intValue]] forKey:(__bridge id)kSecAttrAccount];
// if passcode matches then load Show Lock Screen Page
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] init];
[self.window addSubview:self.viewController.view];
[self.window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)
和以下使用以下代码重置密码:
if(_isResetPasscode){
NSLog(@"Code here for Update Passcode in Keychain Access !!!");
_isResetPasscode = FALSE;
// "keychain" is object of "KeychainItemWrapper" class
[keychain resetKeychainItem];
/* Again setting the new passcode entered by user in keychain access.. IT IS NOT SAVING IN keychain access, where above the same line of code was working for saving passcode in keychain access
/*
[keychain setObject:resetPasscodeNum forKey:(__bridge id)kSecValueData];
NSLog(@"----Passcode Re-Setted ----!! %@\n",resetPasscodeNum);
}
Run Code Online (Sandbox Code Playgroud)
每当打印"0"时,我在控制台中打印钥匙串密码.请指导我在哪里做错了...我的帮助将不胜感激!
提前致谢
您尚未指定输入密码的格式。我假设它可以是任何类型的文本。如果是这种情况,如果输入的文本实际上不是数字,则此行将失败:
[textfieldPassword1.text intValue]
Run Code Online (Sandbox Code Playgroud)
并将返回 0;
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |