Base64 编码和 MD5

"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加密。

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 0x01 目录 常见编码: ASCII编码 Base64/32/16编码 shellcode编码 Quoted-p...
    H0f_9阅读 14,486评论 2 17
  • MD5加密 简介 它是用哈希算法加密的。哈希算法是一种摘要算法(是一种能产生特殊输出格式的算法,这种算法的特点是:...
    YANG1220阅读 9,363评论 0 9
  • CTF中那些脑洞大开的编码和加密 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问...
    查无此人asdasd阅读 11,292评论 0 19
  • 以往都在纠结烟花易冷,为何烟花易冷。后来明白了,烟花在一瞬绽放,在一瞬间消散所有的热量,热烈芬芳。 这世上有一种花...
    嘉晟阅读 1,514评论 0 0
  • 奔跑的再快,快不过时间, 思念的再久,久不过永远。 悲伤的承受,更懂得珍惜, 乐观的面对,才活的潇洒。 握不住的沙...
    华山小子阅读 1,046评论 0 0