我是iOS swift 3开发的新手。现在,我正在开发一个需要加密,消息认证码(MAC)和Hashed-base-MAC的项目。这些算法需要密钥。我知道在代码中对密钥进行硬编码是一种不好的做法,例如:
let key = "secretkeyabc123"
搜索并阅读以下文章: In iOS, how can I store a secret "key" that will allow me to communicate with my server?
由于其他人可能会执行逆向工程,我找到了一种保护我的密钥的方法。要求:
欢迎代码,概念或其他事项。谢谢!
答案 0 :(得分:0)
根本不要存放钥匙。执行Diffie-Hellman密钥交换以启动非对称加密通道,并使用此通道通过对称密钥发送到客户端,该密钥可用于后续客户端使用。
答案 1 :(得分:0)
检查iCloud Keychain(根据你的标签[ios],[swift],[key])。
它作为一个安全的数据库,允许安全地存储包括用户的网站登录密码,Wi-Fi网络密码,信用卡/借记卡管理(虽然没有CVV)和其他帐户数据的信息,以便快速访问和自动 - 当用户需要即时访问网页时,填写网页和其他地方。它们始终使用256位AES加密进行加密存储,存储在设备上并在设备之间从iCloud推送,并且仅在用户的可信设备上可用。