0

我想加密一个NSString所以我提到了 NSString 的 AES Encription。该代码运行良好,我可以使用它。

但如果有人能拿到加密密钥,就很容易解码我的NSString.

strings -a在终端中对生成的可执行文件执行了命令,并且能够看到该加密密钥。

因此,我们在发送数据之前对其进行了保护,但加密密钥仍然暴露在外。如何保护此加密密钥?

编辑:我有多个进程在系统上运行。有时他们通过发布通知与 NSDistributedNotificationCenter 进行通信。有时,该通知充当命令。我担心的是任何人都可以发布通知并试图欺骗我的流程。所以我决定使用postNotificationName:object:userInfo:deliverImmediately:. 在这个 API 中,我可以发送加密数据(命令),并且只有我的可执行文件知道加密密钥。

4

1 回答 1

2

您永远无法真正安全地隐藏字符串,只需对其进行混淆以保护自己免受简单攻击。一种合理的解决方案是将其与已知常数进行异或。将字符串拆分为单个字节,将每个字节与已知数字进行异或运算,并将生成的字节数组存储在二进制文件中。当您需要使用字符串时,使用相同的常量再次对数组字节进行异或运算,并从结果字节数组中创建一个字符串。

于 2013-04-04T17:34:27.413 回答