【发布时间】:2013-03-26 20:53:09
【问题描述】:
我想加密一个NSString,所以我提到了AES Encription for NSString。
该代码运行良好,我可以使用它。
但如果有人能拿到加密密钥,就很容易破解我的NSString。
我在终端中对生成的可执行文件执行了strings -a 命令,并且能够看到该加密密钥。
因此,我们在发送数据之前对其进行了保护,但加密密钥仍然暴露在外。如何保护此加密密钥?
编辑:我有多个进程在系统上运行。有时他们通过发布通知与 NSDistributedNotificationCenter 进行通信。有时,该通知充当命令。我担心任何人都可以发布通知并试图欺骗我的流程。所以我决定使用postNotificationName:object:userInfo:deliverImmediately:。在这个 API 中,我可以发送加密数据(命令),并且只有我的可执行文件知道加密密钥。
【问题讨论】:
-
正如@zoul 所说,实际上不可能按照您的要求进行操作(即,如果可执行文件具有解密字符串所需的一切,那么拥有该可执行文件的任何人也拥有所需的一切)。但根据您实际尝试实现的目标,可能有另一种方法(例如使用公钥加密)。你到底想完成什么?
-
我用更多信息更新了问题。
标签: macos cocoa encryption