首页 > 其他分享 >BASE64

BASE64

时间:2023-10-12 23:35:03浏览次数:28  
标签:编码 Base64 字符 二进制 BASE64 传输 64

Base64是什么?

Base64是一种二进制到文本的编码方式。如果要更具体一点的话,可以认为它是一种将 byte数组编码为字符串的方法,而且编码出的字符串只包含ASCII基础字符。值得注意的是Base64不是加密算法,其仅仅是一种编码方式,算法也是公开的,所以不能依赖它进行加密。

为什么叫Base64?

因为它是基于(Base)64个字符的一种编码方式。使用其编码后的文本只包含64个ASCII码字符(偶尔加一个填充字符=),如下所示:
Base64使用到的64个字符:
A-Z 26个
a-z 26个
0-9 10个
+1个
/ 1个

Base64解决什么问题?

Base64编码是从二进制值到某些特定字符的编码,这些特定字符一共64个,所以称作Base64。

为什么不直接传输二进制呢?比如图片,或者字符,既然实际传输时它们都是二进制字节流。而且即使Base64编码过的字符串最终也是二进制(通常是UTF-8编码,兼容ASCII编码)在网络上传输的,那么用4/3倍带宽传输数据的Base64究竟有什么意义?

真正的原因是二进制不兼容。某些二进制值,在一些硬件上,比如在不同的路由器,老电脑上,表示的意义不一样,做的处理也不一样。同样,一些老的软件,网络协议也有类似的问题。
在项目中,对报文进行压缩、加密后,最后一步一般是 base64 编码。因为 base64 编码的字符串更适合不同平台,不同语言的传输。

Base64 编码的优点:

1.算法是编码,不是压缩,编码后只会增加字节数(一般是比之前的多1/3,比如之前是3, 编码后是4)
2.算法简单,基本不影响效率
3.算法可逆,解码很方便,不用于私密传输。
毕竟编码了,肉眼不能直接读出原始内容。
加密后的字符串只有【0-9a-zA-Z+/=】 不可打印字符(转译字符)也可以传输

所以:Base64就是为了解决各系统以及传输协议中二进制不兼容的问题而生的



对应的BASE64编码

20231313 ——>MjAyMzEzMTM=
张景云 ——>5byg5pmv5LqR

标签:编码,Base64,字符,二进制,BASE64,传输,64
From: https://www.cnblogs.com/raymongillichmks/p/17760845.html

相关文章

  • [LitCTF 2023]enbase64
    这是一个将flag换base64表之后加密的代码附件下载https://wwvc.lanzouj.com/iwZuF1bmzehg查壳无壳,32位分析丢入ida32,找到main函数F5int__cdeclmain(intargc,constchar**argv,constchar**envp){charSource[61];//[esp+1Fh][ebp-81Dh]BYREFcharv5......
  • Base64
    Base64的定义Base64是基于64个可打印的字符来表示二进制的数据的一种方法,它能够将给定的任意二进制数据转换为ASCII字符串的形式,以便在只支持文本的环境中也能够顺利地传输二进制数据,Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。Base64的应用编辑二进制数据:通......
  • BASE64编码
    1.什么是BASE64编码Base64是基于64个可打印字符来表示二进制数据的编解码方式,是网络中存储和传输二进制数据的普遍用法。2.BASE64编码用于解决什么问题?八十年代,简单邮件传输协议STMP协议只用于传送ASCII码,对于非英语国家的文字、控制字符、图片转的ASCII码等的传送能力不好,所以......
  • BASE64编码
    目录BASE64编码定义BASE64编码应用BASE64编码和解码BASE64编码定义Base64是基于64个可打印字符来表示二进制数据的编解码方式,是网络中存储和传输的二进制数据的普遍用法。Base64一个字节只能表示64种情况,且编码格式每个字节的前两位都只能是0,使用剩下的6位表示内容。参考......
  • 使用base64数据做背景图片,IE无法显示
     div{width:100px;height:100px;background-position:centercenter;background-repeat:no-repeat;background-size:100px100px;background-image:url('data:image/svg+xml;utf8,%3Csvg%20t%3D%221636092321349%22%20class%3D......
  • org.springframework.util.Base64Utils
      Stringstr="abc";Stringencode=newString(Base64Utils.encode(str.getBytes()));System.out.println("加密后:"+encode);Stringdecode=newString(Base64Utils.decode(encode.getBytes()),"utf8&......
  • Base64编码
    base64是什么?Base64,顾名思义,就是包括小写字母a-z、大写字母A-Z、数字0-9、符号"+"、"/"一共64个字符的字符集,(另加一个“=”,实际是65个字符,至于为什么还会有一个“=",这个后面再说)。任何符号都可以转换成这个字符集中的字符,这个转换过程就叫做base64编码。base64怎么转换首先将......
  • URLEncode和Base64
    1.URLEncode和Base64在我们访问一个url的时候总能看到这样的一种urlhttps://www.sogou.com/web?query=%E5%90%83%E9%A5%AD%E7%9D%A1%E8%A7%89%E6%89%93%E8%B1%86%E8%B1%86&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=inde......
  • Go每日一库之148:base64Captcha(多种形式验证码)
    Base64captcha几行代码就可以定义自己内容的图形验证码库,支持任意unicode字符的内容.1.文档&DemoEnglish中文文档Playground2.快速上手2.1下载base64Captcha包goget-ugithub.com/mojocn/base64Captcha2.2在您的项目中使用base64Captcha2.2.1实现Store......
  • JavaScript下载base64位文件
    1/**2*下载文件3**/4functiondownloadExcel(base64Data){5varmyBlob=this.base64toBlob(base64Data);6varmyUrl=URL.createObjectURL(myBlob);7varlink=document.createElement("a");8......