不仅仅是iOS开发需要知道的Base64在什么时候使用

 

1.Base64算不上加密,它只是把数据进行编码和解码

2.实际使用的时候一般需要把默认的换行符都去掉

3.使用场景:

<1>:传输密文,RSA,DES,SM2,SM4等加密算法都是对2/16进制数据操作(16进制是我们直观看到的).

比如 这个 7b202020 20202020 20202020 20205c22 49645c22 3a205c22 59735f53 68655a68 695f444c 4d4d5847 5c222c20 20202020 20202020 20202020 5c224973 4c6f6769

在iOS中这是NSData类型,这个密文是无法转成String的(除非HexToStr,看起来还是那些,数据量大,解析步骤更多)。

如何将上面的16进制数据传给服务器,通过Base64编码 将其转成NSString,类似:JXU4RkQ5JXU5MUNDJXU2NjJGJXU4OTgxJXU1MkEwJXU1QkM2JXU3Njg0JXU1MTg1JXU1QkI5JXVGRjAx

这时候使用Base64编码将密文的data转成str给服务器,服务器将str进行Base64解码成bytes然后给解密算法。

<2>:传输有特殊字符的字符串

服务器给客户端返回的都是 String类型并且一般是组成json格式。客户端拿到json格式的string字符串转成客户端里的字典(NSDictionary安卓叫Map,NSArray安卓叫List)。如果有特殊字符json解析会失败。所以将有特殊字符的键对应的值进行Base64编码,客户端收到后使用Base64解码进行展示。

例如:

{

"Type": "H",

 "Id": "xinyongkaji\\nhuo"

}   

\\n属于特殊字符   需要将这一个字段Base64编码

{

"Type": "H",

 "Id": "eGlueW9uZ2thamklNUMlNUNuaHVv"

}   

需要向上面这样传输

客户端收到后在单独对"Id"的值Base64解码成xinyongkaji\\nhuo

 

<3>图片,声音,视频,文档Word,PPT,  Cer证书

图片等是二进制存储的,有单独的Base64编码/解码方法,原理同第一条

 

 

 

剩下的想起来再补充

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值