美文网首页
iOS Base64编码

iOS Base64编码

作者: Lin_梓明 | 来源:发表于2016-07-01 20:34 被阅读1135次

    今天突然想起了base64编码加密,然后就整理了一下,虽然用的不多,但了解多一点并无坏处~

    一、简介

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

    二、原理

    参考文章:
    http://www.cnblogs.com/hongru/archive/2012/01/14/2321397.html
    Ø base64的编码都是按字符串长度,以每3个8bit的字符为一组,
    Ø 然后针对每组,首先获取每个字符的ASCII编码,
    Ø 然后将ASCII编码转换成8bit的二进制,得到一组3*8=24bit的字节
    Ø 然后再将这24bit划分为4个6bit的字节,并在每个6bit的字节前面都填两个高位0,得到4个8bit的字节
    Ø 然后将这4个8bit的字节转换成10进制,对照Base64编码表,得到对应编码后的字符。
    注:如果被编码字符长度不是3的倍数的时候,则都用0代替,对应的输出字符为=

    Base64对照表

    Base64编码表.png

    三、终端命令

    3、终端命令
    将 abc.png 进行 base64编码,生成 xxx.txt 文件
    $ base64 abc.png -o xxx.txt // -o 表示输出
    将 xxx.txt 解码生成1.png
    $ base64 -D xxx.txt -o 1.png // -D 表示 decoder 解码
    将字符串 ABC 进行 base64 编码
    $ echo -n ABC | base64
    将字符串 QUJD 解码
    $ echo -n QUJD | base64 -D

    四、Base64代码实现

    1、修改代码
    保存密码不能使用明文,使用base64进行加密。
    提交数据到服务器不能使用明文,使用base64进行加密。

    #pragma mark - Base64
    
    // 编码:A => QQ==
    
    -(NSString*)base64Encode:(NSString *)string{
    //1.将字符串转换成二进制数据
     NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    //2.利用ios7.0的方法,直接 base64 编码
    
       return [data base64EncodedStringWithOptions:0];
    }
    
    // 解码:QQ== => A
    - (NSString*)base64Decode:(NSString *)string {
    //1.将base64编码后的字符串,解码成二进制数据
     //这里不能使用注释掉的方法转换成二进制,因为 string 就是已经编码过的字符串
    //NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    NSData *data = [[NSData alloc]initWithBase64EncodedString:string options:0];
    //2.返回解码的字符串
     return [[NSString alloc] initWithData:data
    encoding:NSUTF8StringEncoding];
    }
    

    相关文章

      网友评论

          本文标题:iOS Base64编码

          本文链接:https://www.haomeiwen.com/subject/elfqjttx.html