美文网首页
Base64 编码和 MD5

Base64 编码和 MD5

作者: 闪电迷 | 来源:发表于2016-09-17 21:18 被阅读217次

"Base64编码":描述:Base64是密码学的基石。

特点:可以将任意的二进制数据进行Base64编码。

结果:所有的数据都能被编码为只用65个字符就能标识的文本文件。

65个字符:A~Za~z0~9+=/

对文件进行Base64编码后文件数据约等于编码前数据的四分之三,会大出1/3左右。

Base64编码原理:1,将所有字符转化为ASCII码。

2,将ASCII码转为8位的二进制。

3,将二进制3个归成一组(不足3个后面补0)共24位,在拆分成4组,每组6为。

4,统一在6位而进之前补两个0凑足8位。

5,将补0后的二进制转为十进制。

6,从Base64编码表获取十进制对应的Base64编码。

从iOS7.0开始,苹果就提供了Base64的编码和解码支持。

//给定一个字符串,对该字符串进行Base64编码,然后返回编码后的结果

-(NSString *)base64EncodeString:(NSString *)string

{

//1.先把字符串转换为二进制数据

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

//2.对二进制数据进行base64编码,返回编码后的字符串

return[data base64EncodedStringWithOptions:0];

}

//对base64编码后的字符串进行解码

-(NSString *)base64DecodeString:(NSString *)string

{

//1.将base64编码后的字符串『解码』为二进制数据

NSData *data = [[NSData alloc]initWithBase64EncodedString:string options:0];

//2.把二进制数据转换为字符串返回

return[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

}

c.终端测试命令

$ echo -n A | base64

$ echo -n QQ== |base64 -D

"单向散列函数"特点:

1,加密后密文的长度是定长的。

2,如果明文不一样,那么散列后的结果一定不一样。

3,如果明文一样,那么加密后的密文一定一样。对相同数据加密,加密后密文一样。

4,所有的加密算法是公开的。

5,不可以逆推反算。

经典的加密算法:1,MD5加密。2,SHA1。3,SHA512。

MD5加密算法简单说明:

1,对字符串进行MD5加密可以得到一个32个字符的密文。

2,加密之后不能根据密文逆推出明文。

3,MD5已经被暴力破解。碰撞检测。

MD5安全的加密方式:先乱序再加盐,多次MD5加密。

应用领域:可以做搜索,多个关键字,先对每个关键字进行散列,然后多个关键字进行或运算,如果值一致则搜索结果一致。

版权,对文件进行散列判断该文件是否是正版或原版。

对称加密:加密解密使用相同的密钥。

加密和解密的过程是可逆的。明文加密成密文,密文可以解密成明文。

非对称加密:使用公钥加密,使用私钥解密。公钥是公开的,私钥保密。加密处理安全,但是性能极差。

相关文章

网友评论

      本文标题:Base64 编码和 MD5

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