我不需要任何嚴肅的安全措施,我只需要用plist編輯器來阻止11歲的孩子輕鬆編輯我遊戲中的硬幣數量。這個unicode加密失敗了嗎?
我創建了一個函數,它接受一個字符串,對於字符的每個unicode值,它將該unicode值提高220倍,並將其加到字符串中的字符數的14倍。
顯然這將失敗(我認爲)如果字符串像一百萬個字符長,因爲最終你用完unicode字符,但出於所有意圖和目的,這隻會用於20個字符或更少的字符串。
在這個範圍內是否有任何unicode字符不會被存儲到plist中,或者當我保存plist時會被Apple的底層代碼忽略,因此當我檢索並解密字符將會消失,解密它?
+(NSString*)encryptString:(NSString*)theString {
NSMutableString *encryptedFinal = [[NSMutableString alloc] init];
for (int i = 0; i < theString.length; i++) {
unichar uniCharacter = [theString characterAtIndex:i];
uniCharacter += +220+(14*i);
[encryptedFinal appendFormat:@"%C", uniCharacter];
}
return encryptedFinal;
}
+(NSString*)decryptString:(NSString*)theString {
NSMutableString *decryptedFinal = [[NSMutableString alloc] init];
for (int i = 0; i < theString.length; i++) {
unichar uniCharacter = [theString characterAtIndex:i];
uniCharacter += +220+(14*i);
[decryptedFinal appendFormat:@"%C", uniCharacter];
}
return decryptedFinal;
}
Unicode不起作用。並非所有的值都是有效的unicode值。你可以做的一件事是將'NSString'轉換爲'NSData',操縱數據。 – zaph
你不需要這個。除非iPhone/iPad遭到破解,否則無法修改應用的.plist文件。如果iPhone/iPad已越獄,那麼代碼注入器將能夠擊敗幾乎所有簡單的加密方案。 – Pranav
你可能想看看[這個答案](http://stackoverflow.com/questions/13843496/encrypt-decrypt-plist-file-ios?rq=1) – Pranav