美文网首页
Base64加密

Base64加密

作者: ttcloud | 来源:发表于2019-06-05 23:16 被阅读0次

Base64是一种编码算法,它利用6bit字符表达了原本的8bit字符,相比8bit的字符编码,Base64的编码多占用1/3的字节长度,以此实现更好的兼容性

编码流程(如对ABC进行Base64编码)

1.先将字符转换成相应的二进制拼接后得到\color{red}{010000010100001001000011}

字符 对应的ASCII码值 二进制值
A 65 01000001
B 66 01000010
C 67 01000011

2.将拼接后的值以\color{red}{6}为单位划分为4个数据组,最高位填充两个0,而后将重组后的4个字节转化为10进制,最后根据Base64字符表查出对应的值

字节 对应的十进制 Base64表对应值
00010000 16 Q
00010100 20 U
00001001 19 J
00000011 3 D

注:不足位数的补0

Base64字符表由\color{red}{a-z},\color{red}{A-Z},\color{red}{0-9},\color{red}{ / },\color{red}{ + }构成

Base64加密特点:

  1. 只是一种编码方式,不属于加密算法,一般不用于加密,因为不安全,可以通过base64表推算,但是一般加密后的数据用base64表示
  2. 编码后末尾可能有=号(两个0用=表示)

代码实现

#pragma mark  编码
+ (NSString *)base64EncodedStringWithData:(NSData *)data
{
    //判断是否传入需要加密数据参数
    if ((data == nil) || (data == NULL)) {
        return nil;
    } else if (![data isKindOfClass:[NSData class]]) {
        return nil;
    }
    
    //判断设备系统是否满足条件
    if ([[[UIDevice currentDevice] systemVersion] doubleValue] <= 6.9) {
        return nil;
    }
    
    //使用系统的API进行Base64加密操作
    NSDataBase64EncodingOptions options;
    options = NSDataBase64EncodingEndLineWithLineFeed;
    return [data base64EncodedStringWithOptions:options];
}
#pragma mark  解码
+ (NSData *)base64DecodeDataWithString:(NSString *)string
{
    //判断是否传入需要加密数据参数
    if ((string == nil) || (string == NULL)) {
        return nil;
    } else if (![string isKindOfClass:[NSString class]]) {
        return nil;
    }
    
    //判断设备系统是否满足条件
    if ([[[UIDevice currentDevice] systemVersion] doubleValue] <= 6.9) {
        return nil;
    }
    
    //使用系统的API进行Base64解密操作
    NSDataBase64DecodingOptions options;
    options = NSDataBase64DecodingIgnoreUnknownCharacters;
    return [[NSData alloc] initWithBase64EncodedString:string options:options];
}

终端实现

1.文件

编码:base64 test.jpg -o test.txt
解码:base64 -D test.txt -o test.jpg

2.字符串

编码:echo -n ABC | base64
解码:echo -n QUJD | base64 -D

相关文章

  • iOS 关于加密

    常见的iOS代码加密常用加密方式包括Base64加密、MD5加密、AES加密、RSA加密等。 Base64加密 B...

  • 前后端参数加密

    一,常用类型加密方式 1,base64无秘钥加密2,base64秘钥加密3,AES 加密4,RSA加密 二,加密方...

  • 加密

    AES 加密 密钥生成 数据填充至16的倍数 AES 加密 BASE64 加密 解密 BASE64 解密 AES ...

  • Base64加密解密

    参考 Java8 Base64 BASE64在线加密解密 Android自带Base64加密 这里要注意以上方法...

  • JAVA加密系列(一)-Base64与单向加密算法MD5、SHA

    JAVA加密系列(一)-Base64与单向加密算法MD5、SHA、HMAC Base64 Base64是网络上最常...

  • 前端js几种加密/解密方法

    一、base64加密 base64的github地址 示例 二、MD5加密(不可逆) MD5加密的github地址...

  • Base64加密解密

    /// /// 实现Base64加密解密/// public sealed class Base64{/// ...

  • iOS之加密解密

    base64与md5 base64 : 公开的代码加密,url加密md5:用户密码存储 文件校验 base64 1...

  • iOS加密

    什么是加密? 加密 = 算法 + 钥匙 base64只是编码,不能归类于加密,base64编码原理 算法是固定且公...

  • 总结 iOS中常用的几种加密的方法

    iOS常见的几种加密方法 一. base64加密 将文件进行加密 将文件进行解密 利用终端命令进行base64运算...

网友评论

      本文标题:Base64加密

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