美文网首页
iOS数据安全之 Base64编码

iOS数据安全之 Base64编码

作者: Snow_L | 来源:发表于2018-12-08 13:48 被阅读25次

Base64编码是一种用64个字符(其实是65个字符,“=”是填充字符)来表示任意二进制数据的方法,编码后的数据是一个字符串

原理:

(1)准备一个包含64个字符的数组,其中包含的字符为:A-Z、a-z、0-9、+、/。

(2)64个字符需要6位二进制来表示,表示成数值为0~63。

(3)对二进制数据进行处理,每3个字节一组,一共是3x8=24bit,再划为4小组,每小组正好6个bit,然后查表,获得相应的4个字符,就是编码后的字符串。

(4)如果数据的字节数不是3的倍数,需在原数据后面添加1个或2个零值字节,使其字节数是3的倍数。然后,在编码后的字符串后面添加1个或2个等号“=”,表示所添加的零值字节数。解码的时候,会自动去掉。

特点:

(1)Base64编码是可逆的编码方式,从编码的方式即可逆推出解码的方式。

(2)Base64编码会把3字节的二进制数据编码为4字节的文本数据,长度增加33%。

(3)标准的Base64编码后可能出现字符“+”和“/”,在URL中就不能直接作为参数。

(4)可以自己定义64个字符的排列顺序,这样就可以自定义Base64编码。

(5)Base64编码的长度永远是4的倍数。

应用

(1)Base64适用于小段内容的编码,比如数字证书签名、Cookie的内容等。

(2)Base64也会经常用作一个简单的“加密”来保护某些数据(标准Base64编码解码无需额外信息即完全可逆),而真正的加密通常都比较繁琐。

(3)HTML内嵌Base64编码图片:绝大多数现代浏览器都支持一种名为 Data URLs 的特性,允许使用Base64对图片或其他文件的二进制数据进行编码,将其作为文本字符串嵌入网页中。

(4)电子邮件系统:SMTP协议一开始是基于纯ASCII文本的,对于二进制文件(比如邮件附件中的图像、声音等)的处理并不好,所以后来新增MIME标准来编码二进制文件,使其能够通过SMTP协议传输。

示例代码:

NSString *base0 = [data base64EncodedStringWithOptions:0];

NSString *base1 = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

 //每行最大长度64,行之间添加“\r\n”

NSString *base2 = [data base64EncodedStringWithOptions:NSDataBase64Encoding76CharacterLineLength]; 

//每行最大长度76,行之间添加“\r\n”

NSString *base3 = [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn];

NSString *base4 = [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];

相关文章

  • iOS URL安全的Base64编码、解码

    参考iOS开发探索-Base64编码iOS URL编码&base64编码URL安全的Base64编码,解码 为什么...

  • iOS数据安全之 Base64编码

    Base64编码是一种用64个字符(其实是65个字符,“=”是填充字符)来表示任意二进制数据的方法,编码后的数据是...

  • Base64编码简单总结

    1 Base64编码原理 随着iOS7正式版推出,Apple增加了使用Base64编解码的支持。Base64编码之...

  • base64编码

    base64编码是http协议中制定的一种数据编码格式,是一种二进制安全的数据编码,其编码流程如下: 1 将待编码...

  • iOS 与 web 交互 传图

    web 端将图片 base64 编码后传给 iOS 端,会在 base64 编码前加上 data:image/pn...

  • iOS安全攻防

    参考iOS安全攻防(二十三):Objective-C代码混淆代码混淆 md5 + base64[ios]安全攻防之...

  • 2019-07-28

    Base64编码:二进制数据到文本数据的映射,方便在文本环境中存储二进制数据,base64不要用作加密,不安全 M...

  • 网络安全编码书目录

    网络安全编码 Base64编码 MD5编码 SHA1编码 SHA256编码 HMAC编码

  • iOS Base64编码原理

    Base64编码原理 Base64编码之所以称为Base64,是因为其使用64个字符来对任意数据进行编码,同理有B...

  • iOS开发探索-Base64编码

    Base64编码原理 Base64编码之所以称为Base64,是因为其使用64个字符来对任意数据进行编码,同理有B...

网友评论

      本文标题:iOS数据安全之 Base64编码

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