ios - 这个unicode加密会失败吗?

标签 ios objective-c encryption unicode plist

我不需要任何严格的安全措施,我只需要阻止 11 岁的 child 使用 plist 编辑器轻松编辑我的游戏中的硬币数量。

我创建了一个接受字符串的函数,对于字符的每个 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;
}

最佳答案

如果您要在 20 个字符行的任何给定点处加密 unicode 索引中的前 26+26+10+30 个字符之一,则它适用于长度为 20 个字符或更少的字符串范围。它可能工作得更高,我只是没有测试它更高。

这是我为测试它而创建的代码,所有 unicode 字符都存储在一个 NSString 中并保持有效以供稍后计数。

    int i = 0;
    NSMutableString *encryptedFinal = [[NSMutableString alloc] init];
    NSString *theString = @"a";
    int j = 26+26+10+30;//letters + capital letters + numbers + 30 extra things like ?><.\]!@$
    int f = 0;
    int z = 0;
    while (f < j) {
        while (i < 220+220+(14*20)) {
            unichar uniCharacter = [theString characterAtIndex:0];
            uniCharacter += +f;
            uniCharacter += +220+(14*i);
            [encryptedFinal appendFormat:@"%C", uniCharacter];
            i++;
        }
        z += i;
        f++;
        i = 0;
    }
    NSLog(@"%@", encryptedFinal);
    NSLog(@"%i == %i?", z, encryptedFinal.length);

关于ios - 这个unicode加密会失败吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21897905/

相关文章:

ios - Firebase Phone Auth 以及帐户关联

iOS Swift 方法在 obj C 项目上调用

ios - iOS 8 自定义键盘中的 Command、alt、control、tab 键

python - 我如何(成功地)从命令行 openSSL 解码编码密码?

php - openssl_encrypt、openssl_decrypt key 、iv

iphone - UIImageView 旋转动画带易出

ios - 当我的应用程序的音频启动时,如何关闭另一个应用程序的音频?

javascript - 如果安装了Cydia,有办法显示文本吗?

objective-c - NSScrollView 滚动到底部

python - 有谁有 Google App Engine 上 python 中 AES 加密的代码示例吗?