近期公司項(xiàng)目需要用到Rsa加解密,特此編寫(xiě)了此demo
//
//? RsaEncrypt.h
//? RsaEncrypt
//
//? Created by ZhangNing on 2018/5/16.
//? Copyright ? 2018年 gmrz. All rights reserved.
//
#import
@interfaceRsaEncrypt :NSObject
typedefNS_ENUM(OSStatus,RSA_SATAUS){
? ? RSA_SUCCESS =0,
? ? RSA_FAILED =1<<1,
? ? RSA_GET_PUBLICKEY_FAILED =1<<2,
? ? RSA_GET_PRIVATEKEY_FAILED =1<<3
};
//類方法,初始化設(shè)置公私鑰Tag
+ (instancetype)sharedInstancePrivateTag:(NSData*)privateTag publicTag:(NSData*)publicTag;
//臨時(shí)創(chuàng)建后臨時(shí)更改公私鑰tag
- (void) setPrivateTag:(NSData*)privateTag publicTag:(NSData*)publicTag;
//create Rsa generateKeys publicKey and privateKey
- (RSA_SATAUS)createRSA_generate_keys;
//encrypt someDataString use privateKey
- (RSA_SATAUS)encryptBeforeEncryptDataIn:(NSData*)encryptDataIn EncryptDataOut:(NSData**)encryptDataOut;
//decode SomeEncryptData use publicKey
- (RSA_SATAUS)decodeBeforeEncryptDataIn:(NSData*)encryptDataIn DecodeRncryptDataOut:(NSData**)decodeEncryptDataOut;
//del public and private keys Use KyesTag;
- (RSA_SATAUS)deleteRsaKeys;
@end
此demo 對(duì)類進(jìn)行封裝,封裝系統(tǒng)加解密方法,實(shí)現(xiàn)數(shù)據(jù)的加解密.
公鑰私鑰存儲(chǔ)在keychain中,方法調(diào)用簡(jiǎn)單詳情參照demo來(lái)完成.
如有錯(cuò)誤請(qǐng)批評(píng)指出.