CocoaSecurity 1.2.4

CocoaSecurity 1.2.4

测试已测试
语言语言 Obj-CObjective-C
许可证 MIT
发布上次发布2014年12月

维护者:



  • 作者
  • Kelp

Kelp https://twitter.com/kelp404/
MIT 许可证

CocoaSecurity 包含 4 个类,以及 CocoaSecurityCocoaSecurityResultCocoaSecurityEncoderCocoaSecurityDecoder

CocoaSecurity

CocoaSecurity 是核心类。它提供 AES 加密、AES 解密、(MD5, HmacMD5, SHA1~SHA512, HmacSHA1~HmacSHA512) 消息散列。

MD5

CocoaSecurityResult *md5 = [CocoaSecurity md5:@"kelp"];

// md5.hex = 'C40C69779E15780ADAE46C45EB451E23'
// md5.hexLower = 'c40c69779e15780adae46c45eb451e23'
// md5.base64 = 'xAxpd54VeAra5GxF60UeIw=='

SHA256

CocoaSecurityResult *sha256 = [CocoaSecurity sha256:@"kelp"];

// sha256.hexLower = '280f8bb8c43d532f389ef0e2a5321220b0782b065205dcdfcb8d8f02ed5115b9'
// sha256.base64 = 'KA+LuMQ9Uy84nvDipTISILB4KwZSBdzfy42PAu1RFbk='

默认 AES 加密
key -> SHA384(key).sub(0, 32)
iv -> SHA384(key).sub(32, 16)

CocoaSecurityResult *aesDefault = [CocoaSecurity aesEncrypt:@"kelp" key:@"key"];

// aesDefault.base64 = 'ez9uubPneV1d2+rpjnabJw=='

AES256 加密与解密

CocoaSecurityResult *aes256 = [CocoaSecurity aesEncrypt:@"kelp"
                                      hexKey:@"280f8bb8c43d532f389ef0e2a5321220b0782b065205dcdfcb8d8f02ed5115b9"
                                       hexIv:@"CC0A69779E15780ADAE46C45EB451A23"];
// aes256.base64 = 'WQYg5qvcGyCBY3IF0hPsoQ=='

CocoaSecurityResult *aes256Decrypt = [CocoaSecurity aesDecryptWithBase64:@"WQYg5qvcGyCBY3IF0hPsoQ==" 
                                      hexKey:@"280f8bb8c43d532f389ef0e2a5321220b0782b065205dcdfcb8d8f02ed5115b9"
                                       hexIv:@"CC0A69779E15780ADAE46C45EB451A23"];
// aes256Decrypt.utf8String = 'kelp'

CocoaSecurityResult

CocoaSecurityResult 是 CocoaSecurity 的结果类。它可以将结果数据转换为 NSData、NSString、HEX 字符串、Base64 字符串。

@property (strong, nonatomic, readonly) NSData *data;
@property (strong, nonatomic, readonly) NSString *utf8String;
@property (strong, nonatomic, readonly) NSString *hex;
@property (strong, nonatomic, readonly) NSString *hexLower;
@property (strong, nonatomic, readonly) NSString *base64;

CocoaSecurityEncoder

CocoaSecurityEncoder 提供将 NSData 转换为 HEX 字符串或 Base64 字符串的功能。

- (NSString *)base64:(NSData *)data;
- (NSString *)hex:(NSData *)data useLower:(BOOL)isOutputLower;

示例

CocoaSecurityEncoder *encoder = [CocoaSecurityEncoder new];
NSString *str1 = [encoder hex:[@"kelp" dataUsingEncoding:NSUTF8StringEncoding] useLower:NO];
// str1 = '6B656C70'
NSString *str2 = [encoder base64:[@"kelp" dataUsingEncoding:NSUTF8StringEncoding]];
// str2 = 'a2VscA=='

CocoaSecurityDecoder

CocoaSecurityEncoder 提供将 HEX 字符串或 Base64 字符串转换为 NSData 的功能。

- (NSData *)base64:(NSString *)data;
- (NSData *)hex:(NSString *)data;

示例

CocoaSecurityDecoder *decoder = [CocoaSecurityDecoder new];
NSData *data1 = [decoder hex:@"CC0A69779E15780ADAE46C45EB451A23"];
// data1 = <cc0a6977 9e15780a dae46c45 eb451a23>
NSData *data2 = [decoder base64:@"zT1PS64MnXIUDCUiy13RRg=="];
// data2 = <cd3d4f4b ae0c9d72 140c2522 cb5dd146>

安装

  1. git
$ git clone git://github.com/kelp404/CocoaSecurity.git
$ cd CocoaSecurity
$ git submodule update --init
  1. CocoaPods:
    在您的项目路径中添加 Podfile
platform :ios
pod 'CocoaSecurity'
$ pod install