RSA 在很多地方都要使用,但是在ios下使用RSA就是很麻烦
(为什么在iOS下使用什么东西都会麻烦啊摔!)
好吧,麻烦归麻烦,还是要用的。
首先下载库:RSA for ios
这个东西其实是使用openssl的RSA解密加密库的。
将你下载的东西放到项目里面,不要告诉我不会啊!这个不管!
然后修改:
这样然后你编译一下试试。如果是64位的,那么可能会编译不过哦。需要下面的操作
ok!如果编译过了!那么!还不能用!
众所周知!RSA小朋友是需要公钥和私钥的。这个需要普及的同学请查看百度百科。
你可以在下面这个地方发现你的公钥私钥的位置:
看到那两个pem文件木有?用文本编辑打开就可以看到内容。一般后台那边生成公钥私钥比较好做,你可以直接让他们帮你随机生成一份。
好了,当你把后台给你的公钥,你自己的私钥放进项目以后,你就可以开始使用了!
首先你需要先import如下的文件:
NSString+Base64.h
NSData+Base64.h
RSA.h
然后声明如下方法然后使用就可以加密解密啦!
#pragma mark - Encrypt & Decrypt
- (NSString *)decryptFromCipherText:(NSString *)cipher
{
NSString *privateKeyPath = [[NSBundle mainBundle] pathForResource:@"private_key" ofType:@"pem"];
NSLog(@"privateKeyPath: %@", privateKeyPath);
char *plainText = js_private_decrypt([cipher UTF8String], [privateKeyPath UTF8String]);
printf("Plain plain: %s\n", plainText);
return [NSString stringWithUTF8String:plainText];
}
- (NSString *)encryptFromPlainText:(NSString *)plain
{
NSString *publicKeyPath = [[NSBundle mainBundle] pathForResource:@"public_key" ofType:@"pem"];
NSLog(@"publicKeyPath: %@", publicKeyPath);
char *cipherText = js_public_encrypt([plain UTF8String], [publicKeyPath UTF8String]);
printf("cipher : %s\n", cipherText);
return [NSString stringWithUTF8String:cipherText];
}