在iOS中使用OpenSSL的Public Key 进行加密

这几天一直潜心于iOS开发,刚好把遇到的问题都记录一下。这次遇到的问题就是如果根据得到的Public Key在iOS 客户端对用户名和密码进行加密。

Public Key如下:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCp0wHYbg/NOPO3nzMD3dndwS0MccuMeXCHgVlGOoYyFwLdS24Im2e7YyhB0wrUsyYf0/nhzCzBK8ZC9eCWqd0aHbdgOQT6CuFQBMjbyGYvlVYU2ZP7kG9Ft6YV6oc9ambuO7nPZh+bvXH0zDKfi02prknrScAKC0XhadTHT3Al0QIDAQAB
-----END PUBLIC KEY-----

然后就在Google里搜索在iOS 进行RSA 加密,搜到了几篇文章如下:

iOS 上的 RSA 加密方法

iOS 上的 RSA 加密方法

仔细看了一下这两篇文章,发现他们都是从文件中读取Public_Key进行加密,而我遇到的场景是Public_Key是给定的,而不是生成自己的Public_Key进行加密,所以这两篇文章对我的帮助不大。

然后在stackoverflow上找到这个问题,链接为:Encryption with RSA public key on iOS,@ideawu 已经将这个加密算法公开出来,然后根据自己的尝试发现这个方法是可行的。下面就是直接调用他写好的方法进行加密,与服务器端进行解密就完成了加密和解密的过程啦。

NSString *encryptUserName = [RSA encryptString:userName publicKey:pubkey];
NSString *encryptPassword = [RSA encryptString:password publicKey:pubkey];

最后如果访问GitHub有问题的话,我把RSA文件上传到自己的空间方便大家下载。

RSA文件

posted @ 2015-06-19 11:42  坤坤  阅读(937)  评论(0编辑  收藏  举报