使用場(chǎng)景:iOS中部分隱私數(shù)據(jù)進(jìn)行加密之后再傳輸?shù)椒?wù)端
原理:在iOS開發(fā)中將需要加密的NSString類型的字符串對(duì)象A使用RSA算法轉(zhuǎn)為NSData類型的數(shù)據(jù)dataA,再將dataA通過base64算法轉(zhuǎn)為NSString類型的對(duì)象。
用法流程:
1.從 https://github.com/ideawu/Objective-C-RSA 將代碼拉取到本地僧界,將RSA.h和RSA.m文件拖入項(xiàng)目中。
2.在需要使用的.m文件中導(dǎo)入#import "RSA.h"頭文件肿轨,向服務(wù)端的同學(xué)獲取公鑰(NSString類型的)pubKey箱硕,這個(gè)可以存本地杀糯。
NSString *pubkey = @"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI2bvVLVYrb4B0raZgFP60VXY\ncvRmk9q56QiTmEm9HXlSPq1zyhyPQHGti5FokYJMzNcKm0bwL1q6ioJuD4EFI56D\na+70XdRz1CjQPQE3yXrXXVvOsmq9LsdxTFWsVBTehdCmrapKZVVx6PKl7myh0cfX\nQmyveT/eqyZK1gYjvQIDAQAB\n-----END PUBLIC KEY-----";
3.調(diào)用加密RSA加密算法對(duì)字符串originStr進(jìn)行加密碎捺,得到加密后的字符串resultStr勾栗。
NSString *pubKey = @"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI2bvVLVYrb4B0raZgFP60VXY\ncvRmk9q56QiTmEm9HXlSPq1zyhyPQHGti5FokYJMzNcKm0bwL1q6ioJuD4EFI56D\na+70XdRz1CjQPQE3yXrXXVvOsmq9LsdxTFWsVBTehdCmrapKZVVx6PKl7myh0cfX\nQmyveT/eqyZK1gYjvQIDAQAB\n-----END PUBLIC KEY-----";
NSString *originStr = @"1234567";
NSString * resultStr = [RSA encryptString:originStr publicKey:pubKey];
NSLog(@"%@",resultStr);
4.額外說明:對(duì)同一個(gè)字符串進(jìn)行加密之后得到的字符串結(jié)果并非是一個(gè)固定值,只要結(jié)果不為空盏筐,并且和服務(wù)端的同學(xué)驗(yàn)證之后沒問題就OK围俘。
參看鏈接:http://www.reibang.com/p/43f7fc8d8e14
資源來源:https://github.com/ideawu/Objective-C-RSA