내 애플리케이션에 오프라인 로그인을 구현해야합니다. 현재 키 체인에 비밀번호를 저장하고 있는데, 앱이 온라인 일 때 적어도 한 번 이상 로그인에 사용되었습니다.하지만 지금은 사용자 이름 비밀번호 조합을 확인하지 않습니다. 단일 장치에 대해 여러 명의 사용자가있는 경우 암호 만 저장하면 충분하지 않습니다. 따라서 아무도 보안 위반없이 수행 할 수있는 것을 제안 할 수 있습니까?키 체인에 사용자 이름 - 비밀번호 조합을 암호화 된 형식으로 저장하는 방법
답변
을 당신이 열쇠로 로그인을 사용하여, 암호를 저장하는 것이 좋습니다. 다음과 같습니다 : [email protected]/password
.
당신은 너무
당신이 NSURLCredential을 사용할 수있는이 link
스토어에 의존
NSURLCredential *credential;
credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistencePermanent];
[[NSURLCredentialStorage sharedCredentialStorage] setCredential:credential forProtectionSpace:self.loginProtectionSpace];
데이터 저장이
NSURLCredential *credential;
NSDictionary *credentials;
credentials = [[NSURLCredentialStorage sharedCredentialStorage] credentialsForProtectionSpace:self.loginProtectionSpace];
credential = [credentials.objectEnumerator nextObject];
NSLog(@"User %@ already connected with password %@", credential.user, credential.password);
당신은 저장하기위한 장치 키 체인에 저장할 수 있습니다 받기 민감한 정보. 암호를 검색하려면 SHA512
#import "KeychainWrapper.h"
#include <CommonCrypto/CommonDigest.h>
-(void)createSHA512andSaveToKeychain:(NSString*)unencryptedPasswd {
const char *passwdBytes= [unencryptedPasswd cStringUsingEncoding:NSUTF8StringEncoding];
NSData *passwordData = [NSData dataWithBytes:passwdBytes length:unencryptedPasswd.length];
uint8_t digest[CC_SHA512_DIGEST_LENGTH];
CC_SHA512(passwordData.bytes, passwordData.length, digest);
NSMutableString *encryptedPasswd= [NSMutableString stringWithCapacity:CC_SHA512_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA512_DIGEST_LENGTH; i++) {
[encryptedPasswd appendFormat:@"%02x", digest[i]];
}
// Save the password in the device keychain
KeychainWrapper *keychainWrapper = [[KeychainWrapper alloc] init];
[keychainWrapper mySetObject:encryptedPasswd forKey:(__bridge id)kSecValueData];
[keychainWrapper writeToKeychain];
}
와 암호를이 Ray Wenderlich tutorial에서 래퍼를 다운로드 및 암호화 :
// Retrieve the pwd from the device keychain
KeychainWrapper *keychainWrapper = [[KeychainWrapper alloc] init];
NSString *pwd = [keychainWrapper myObjectForKey:@"v_Data"];
검색된 암호를 올바른 사용자 이름과 일치시킬 수 있습니까? 같은 장치에 대해 여러 명의 사용자가 있습니다 – iOSManiac
예. 여러 암호 (및 사용자 이름)를 저장해야하는 경우 Apple의 다른 래퍼가 필요합니다. 이 링크를 참조하십시오 : http : //devmonologue.com/ios/ios/storing-sensitive-information-in-the-phones-keychain/ 기본적으로 "initWithIdentifier :"메소드를 사용하여 사용자 지정 초기화 프로그램으로 키 체인 클래스를 초기화합니다. – Alex
- 1. 키 체인에 데이터를 저장하는 방법?
- 2. 사용자 이름 및 비밀번호 암호화
- 3. 키 체인에 CFUUID 저장하는 방법
- 4. 시뮬레이터의 키 체인에 비밀번호 저장
- 5. 키 체인에 암호화 된 문자열 저장
- 6. 사용자 이름과 암호를 암호화 된 형식으로 저장하는 방법은 무엇입니까?
- 7. 다른 키로 키 체인에 사용자 이름 저장
- 8. 키 체인에 여러 사용자
- 9. 키 체인에 데이터 저장
- 10. iOS의 키 체인에 이메일/비밀번호 저장하기
- 11. 로그인 팝업 - 사용자 이름 비밀번호 값 암호화
- 12. RSA publicKey/privateKey를 키 체인에 저장하는 법
- 13. iOS 키 체인에 여러 비밀번호 저장
- 14. 키 체인에 저장된 데이터?
- 15. Java를 사용하여 Mac에 사용자 이름/비밀번호 저장
- 16. 프로그래밍 방식으로 긴 문자열을 Mac 키 체인에 저장하는 방법은 무엇입니까?
- 17. ios 키 체인에 수동으로 저장하는 방법은 무엇입니까? 내 애플 리케이션을위한
- 18. 키 체인에 NSUserDefault를 저장하십시오.
- 19. 사용자 이름 비밀번호 표시
- 20. 비밀번호 암호화
- 21. 저장 비밀번호/사용자 이름 정보
- 22. 비밀번호 암호화
- 23. 비밀번호 암호화
- 24. JSONStore에서 암호화 키/암호를 저장하는 방법
- 25. 스위프트를 사용하여 iOS 키 체인에 NSHttpCookie 저장
- 26. AES 암호화 - Android에 비밀번호 저장
- 27. Jackrabbit의 비밀번호 암호화
- 28. 데이터베이스의 비밀번호 암호화
- 29. 단일 비밀번호 대 비밀번호 및 사용자 이름
- 30. iPhone에서 ios 용 키 체인에 Wi-Fi ssid와 비밀번호 추가
마 음은 모든 사용자하거나 마지막을 기억하고 싶은 보안을 개선하기 위해 암호의
md5
값을 인코딩 할 수 있습니다? – CZ54@bobby : 모든 사용자를 기억해야합니다. – iOSManiac
로그인을 키로 사용하여 비밀번호를 저장하는 것이 좋습니다. [email protected]/password와 같은 것입니다. 보안 향상을 위해 패스 코드의 md5 값을 인코딩 할 수 있습니다. – CZ54