base64加密解密

来源:互联网 发布:ubuntu内核下载地址 编辑:程序博客网 时间:2024/05/10 08:21

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] 原始字符:abcdefghijklmnopqrstuvwxyz2016-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] abcdefghijklmnopqrstuvwxyz2016-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