使用Base64编解码
来源:互联网 发布:凯里欧文数据 编辑:程序博客网 时间:2024/05/24 00:49
iOS之后,NSData新增一个类别用于加密解密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:
// 字符串转Data NSString *str = @"encode string"; // 字符串转成Data NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];// 13 bytes // 加密Data NSData *encodeData = [data base64EncodedDataWithOptions:0];// 20 bytes // 解密Data NSData *decodeData = [[NSData alloc] initWithBase64EncodedData:encodeData options:0];// 13 bytes // Data转字符串 NSString *decodeStr = [[NSString alloc] initWithData:decodeData encoding:NSUTF8StringEncoding]; NSLog(@"%@",decodeStr);// encode string
以上的方法是通用方法,不过考虑到开发者使用NSData加密解密NSString比较多,苹果提供了更直接的API加密解密NSString:
// 字符串转Data并且加密 NSData *data = [[NSData alloc] initWithBase64EncodedString:@"encode string" options:0]; // Data解密并且转字符串 NSString *decodeStr = [data base64EncodedStringWithOptions:0]; NSLog(@"%@",decodeStr);// encode string
加密解密UIImage:
UIImage *img = [UIImage imageNamed:@"image.jpg"]; // 图片转Data NSData *data = UIImageJPEGRepresentation(img, 0.7); // 加密Data NSData *encodeData = [data base64EncodedDataWithOptions:0]; // 解密Data NSData *decodeData = [[NSData alloc] initWithBase64EncodedData:encodeData options:0]; // Data转图片 UIImage *decodeImg = [UIImage imageWithData:decodeData];
总结:
加密解密是只有NSData才能穿上脱下的隐身斗篷。
阅读全文
0 0
- 使用Base64编解码
- Go使用Base64编解码
- 使用Atl Base64 对文件编解码
- 使用NDK实现的Base64编/解码
- VB Base64编解码
- Base64编解码原理
- BASE64编解码
- openssl base64 编、解码
- base64编解码
- Java:Base64编解码
- Base64编解码
- Base64编解码(C)
- Base64编解码(JS)
- base64编解码
- android base64编解码
- BASE64编解码
- BASE64编解码
- base64编解码
- jQuery插件之ajaxFileUpload(异步上传图片并实时显示,并解决onchange后ajaxFileUpload失效问题)
- 剑指offer 替换空格
- JAVA_编程小案例_数字排序
- 【设计模式】(1)--设计模式初探
- 【Caffe踩坑超有用记录】Ubuntu 15.10/16.04 上安装Caffe——确保编译好的库相互兼容
- 使用Base64编解码
- 如何在Spark平台搭建ThriftServer
- curl错误码对应的中英文解释
- “Internal Server Error"图片路径正确但是却显示不出来,可能和重写规则有关
- 三目运算符?:
- Unity粒子特效详细属性说明
- Unity Shader初涉之 -- Properties
- 那些后来知道的标签
- Linux for Ubuntu安装MS SQL Server