在iOS中,如何存储一个秘密的“密钥”,这将允许我与我的服务器进行通信?

我想要存储一个我将在我的REST API请求的标题中使用的秘密密钥(“abc123”).我的服务器将检查此密钥.如果匹配“abc123”,则允许请求.

我在想一个简单的解决方案,如:

let secret = "abc123"

但是会有什么垮台呢?

解决方法

听起来很疯狂,这可能是最好的解决方案.其他的一切都比较复杂,但安全性不大.您使用的任何花式混淆技术都将被逆向设计,几乎能够快速找到此关键字.但是这个静态密钥解决方案虽然非常不安全,但几乎没有额外的复杂性,几乎与其他解决方案一样安全.我喜欢它.

它将几乎立即被破坏,但所有其他解决方案也将被破坏.所以保持简单.

你真的想在这里做的一件事是使用HTTPS和pin your certificates.我会选择一个不是一个字的长而随机的键.理想情况下,它应该是一个完全随机的字节串,作为原始值存储(而不是字符),以便它在二进制文件中不那么明显.如果你想要疯狂,在发送之前应用一个SHA256(所以实际的键不会显示在你的二进制文件中).再次,这是微不足道的,但很容易,不会浪费大量的时间开发.

长达一个小时以上的工作不太可能值得实施此功能的麻烦.如果你想要更多的话题,请参阅Secure https encryption for iPhone app to webpage及其链接.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...