base64加密解密

iOS中base64加密解密是针对NSData类型的:


加密:

可以将NSData类型加密成NSData类型和NSString类型


解密:

可以将NSData类型和NSString类型密文解密成NSData类型


@interface NSData (NSDataBase64Encoding)

/* Create an NSData from a Base-64 encoded NSString using the given options. By default, returns nil when the input is not recognized as valid Base-64.
*/
- (nullable instancetype)initWithBase64EncodedString:(NSString *)base64String options:(NSDataBase64DecodingOptions)options NS_AVAILABLE(10_9, 7_0);

/* Create a Base-64 encoded NSString from the receiver's contents using the given options.
*/
- (NSString *)base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)options NS_AVAILABLE(10_9, 7_0);

/* Create an NSData from a Base-64, UTF-8 encoded NSData. By default, returns nil when the input is not recognized as valid Base-64.
*/
- (nullable instancetype)initWithBase64EncodedData:(NSData *)base64Data options:(NSDataBase64DecodingOptions)options NS_AVAILABLE(10_9, 7_0);

/* Create a Base-64, UTF-8 encoded NSData from the receiver's contents using the given options.
*/
- (NSData *)base64EncodedDataWithOptions:(NSDataBase64EncodingOptions)options NS_AVAILABLE(10_9, 7_0);

@end


例子:

NSString * string = @"abcdefghijklmnopqrstuvwxyz";
    
    NSLog(@"原始字符:%@", string);
    
    //先转换成NSData类型再加密
    NSData * stringData = [string dataUsingEncoding:NSUTF8StringEncoding];
    
    NSLog(@"%@", stringData);
    
    //加密成  NSData  类型
    NSData * encodeToData = [stringData base64EncodedDataWithOptions:0];
    
    NSLog(@"加密成  NSData  类型:%@", encodeToData);
    
    
    
    
    
    
    
    //解密 NSData
    NSData * decodeData = [[NSData alloc] initWithBase64EncodedData:encodeToData options:0];
    
    NSLog(@"%@", decodeData);
    
    //转换成NSString
    NSString * decodeString = [[NSString alloc] initWithData:decodeData encoding:NSUTF8StringEncoding];
    
    NSLog(@"%@", decodeString);
    
    
    
    
    
    
    //加密成 NSString  类型
    NSString * encodeToString = [stringData base64EncodedStringWithOptions:0];
    
    NSLog(@"加密成 NSString  类型:%@", encodeToString);
    
    NSData * decodeToData = [[NSData alloc] initWithBase64EncodedString:encodeToString options:0];
    
    NSLog(@"解密成 NSData  类型:%@", decodeToData);

输出:

2016-04-20 16:34:37.273 base64-encode-decode[16333:6269374] 原始字符:abcdefghijklmnopqrstuvwxyz
2016-04-20 16:34:37.273 base64-encode-decode[16333:6269374] <61626364 65666768 696a6b6c 6d6e6f70 71727374 75767778 797a>
2016-04-20 16:34:37.274 base64-encode-decode[16333:6269374] 加密成  NSData  类型:<59574a6a 5a47566d 5a326870 616d7473 62573576 63484679 63335231 646e6434 65586f3d>
2016-04-20 16:34:37.274 base64-encode-decode[16333:6269374] <61626364 65666768 696a6b6c 6d6e6f70 71727374 75767778 797a>
2016-04-20 16:34:37.274 base64-encode-decode[16333:6269374] abcdefghijklmnopqrstuvwxyz
2016-04-20 16:34:37.274 base64-encode-decode[16333:6269374] 加密成 NSString  类型:YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo=
2016-04-20 16:34:37.274 base64-encode-decode[16333:6269374] 解密成 NSData  类型:<61626364 65666768 696a6b6c 6d6e6f70 71727374 75767778 797a>

这里只是说明基本用法,其它暂不深究





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值