【Objective-C】Base64

       base64算法能把任何二进制数据转换成文本文件, 二进制数据默认是按照8位一字节进行编码的,base64编码则是按照特定的字符表按照6位一分,最终得到的数值。每差一位,末位补两个0.对应字符表中的=号。所以base64编码比较容易辨认,如果文本最后面是等号,就有很大可能是base64编码。

简介
  • 是网络上使用最广泛的编码系统,能够将任何二进制数据,转换成只有 65 个字符组成的文本文件
  • a~z,A~Z,0~9,+,/,=
  • Base 64 编码后的结果能够反算,不够安全
  • Base 64 是所有现代加密算法的基础算法

存在的问题

  1. 使用 Base64 不能直接看到用户密码的明文
  2. 但是 Base64 的算法是公开的,并且算法可逆,安全性并不好
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [self loadUserInfo];
   
    // 测试base64
    NSLog(@"编码 %@", [self base64Encode:@"A"]);
    NSLog(@"解码 %@", [self base64Decode:@"QQ=="]);
}



#pragma mark - base64
///  编码:A => QQ==
- (NSString *)base64Encode:(NSString *)string {
    // 1. 将字符串转换成二进制数据
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
   
    // 2. 利用 iOS 7.0 的方法,直接 base64 编码
    return [data base64EncodedStringWithOptions:0];
}

///  解码:QQ== => A
- (NSString *)base64Decode:(NSString *)string {
    // 1. 将base64编码后的字符串,解码成二进制数据
    NSData *data = [[NSData alloc] initWithBase64EncodedString:string options:0];
   
    // 2. 返回解码后的字符串
    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值