【发布时间】:2010-10-27 13:52:42
【问题描述】:
我需要我的应用程序使用客户的电话号码为我的网络服务生成唯一 ID。当然,电话号码是唯一的,但它必须是安全的。所以它可以用对称加密来实现(非对称将在以后,因为资源泄漏),但我不知道在哪里存储加密密钥。
1.
我不知道为什么,但是在代码中将键存储为静态字段似乎不好。可能是因为从这里读取它太容易了,即使不运行应用程序。
2.
最好将密钥存储在 Keychain 中并通过请求从此处获取。但是为了避免#1,有必要在安装过程中安装钥匙串的钥匙。可能吗?该怎么做?
3.
我不知道证书的作用。它们对解决问题有帮助吗?
4.
从服务器传输密钥也是一个坏主意,因为很容易嗅探它。
【问题讨论】:
-
您是否考虑过使用设备 ID 而不是电话号码?如果您只需要唯一的 ID,它就可以完成这项工作。
-
我需要使用电话号码,因为有一些额外的短信服务。
标签: iphone objective-c security certificate keychain