Я также новичок в программировании для iPhone - только что создал свою первую маленькую игру и в настоящее время добавляю функцию Game Center к следующей версии (называемой Smiley Lines ;). Я полагаю, что многие окажутся в такой же ситуации.как я - просто хочу немного простого хэширования, чтобы взломанные люди не могли легко изменить счет в пользовательских настройках по умолчанию, следовательно, предотвращая путаницу в онлайн-таблице лидеров.
Если это так, я считаю преобразование NSData в решение AES довольно сложным (для новичка iOS и для простой необходимости хеширования целого числа) и немного избыточного.После некоторого поиска, здесь найдено отличное решение: Matthias Plapper разделил класс NSUserDefaults на подклассы, чтобы обеспечить простое хеширование с секретным ключом .Супер прост в использовании - скопируйте, вставьте два исходных файла, и вот пример использования:
// Configuring user defaults. It is recommended that you do this
// immediately after the app did launch.
[NSUserDefaults setSecret:@"shh, this is secret!"];
// Write secure user defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setSecureBool:YES forKey:@"IsRegistered"];
// Read secure user defaults
BOOL valid = NO;
BOOL registered = [defaults secureBoolForKey:@"IsRegistered" valid:&valid];
if (!valid) {
// the property has been modified, handle this situation
} else {
// Valid property, do whatever you need to do
}
Спасибо за тонну Матиаса!