2017-12-02 24 views
1

내 게임의 일부 문자열 (점수, lastPlayedLevel 등)을 키 체인에 저장하려고합니다. 왜냐하면 그것은 가장 안전한 방법이라고합니다. 키 체인 개념을 처음 접했을 때 나는 아마도 "매우 간단한"것들을 이해하는데 문제가 있습니다. 키 체인에 게임 상태 및 점수 저장

나는 SAMKeychain 래퍼를 사용하고 난

[SAMKeychain setPassword:@"25" forService:[[NSBundle mainBundle] bundleIdentifier] account:@"lastPlayedLevel"]; 

이 올바른 방법인가 아래로 lastPlayedLevel 문자열을 설정하려면? "계정"부분에 대해 잘 모르겠습니다. "lastPlayedLevel"을 사용자의 모든 기기에서 동기화하고 싶습니다. 대신 사용자 지정 문자열을 작성해야합니까? 키 체인에 점수와 게임 상태 퍼팅

+2

* 게임 점수 및 상태 *는 실제로 키 체인에 저장 될 자격이 없습니다. iOS는 기본적으로 매우 안전합니다. 이런 종류의 정보를'UserDefaults', 커스텀 프로퍼티리스트 파일 또는 코어 데이터에 저장하십시오. – vadian

+0

키 체인에 적합하지 않은 이유를 알지 못했습니다. UserDefaults가 중요한 정보를 입력하는 것이 안전하지 않다는 내용의 게시물이 많이 있습니다. 예를 들어 내 게임에서 "점수"는 게임의 여러 측면을 결정하므로 아무에게도 액세스 및 수정하지 못하도록합니다. 맞춤 plist 파일과 핵심 데이터에 대해 많이 알지는 못하지만 안전합니까? 또한 키 체인을 사용하면 여러 플랫폼에서 이러한 정보를 동기화 할 수 있습니다. – iloalo

답변

1

과잉 이럴입니다. 당신이해야 할 일은 단지 NSUserDefaults에 저장하는 것입니다,하지만 NSUserDefaults 파일을 여는 사람은 즉시 그것을 보거나 편집 할 수 없도록 저장하기 전에 바이너리로 데이터를 인코딩해야합니다. 더 많은 비밀을 원할 경우 바이너리로 인코딩하기 전에 먼저 값을 인코딩하십시오 (예 : char xor 또는 other).