什么是Base64算法

1、为什么要做Base64编码呢
(1)在计算机中任何数据都是按ASCII码存储的,而ASCII码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了。
(2)Base64 不是加密算法,它主要的用途是把一些二进制数转成普通字符用于网络传输。由于一些二进制字符在传输协议中属于控制字符,不能直接传送,需要转换一下。【ASCII码的范围是0-127,其中0-31和127这33个字符属于控制字符。剩下32-126这95个字符属于可打印字符,包含数字、大小写字母、常用符号。】

2、Base64到底是怎样编码的呢?
简单来说,任何一个数据无非可以看作一个比特流,如01000100010011101100111010111100011001010......那么取6个比特为一组,计算它的ASCII码值,得到一个字符,这个字符肯定是可见字符,然后把它对应的字符写出来,再取6个比特,计算...,如此下去,直到最后,就完成了编码。

3、Base64的字符表
(1)标准base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;
(2)base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);
(3)等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;
(4)严格来说base64不能算是一种加密,只能说是编码转换。使用base64的初衷。是为了方便把含有不可见字符串的信息用可见字符串表示出来,以便复制粘贴;

参考文章: https://blog.csdn.net/ios_xumin/article/details/79609029

  • 浠涔堟槸Base64绠楁硶
    绛旓細锛2锛塀ase64 涓嶆槸鍔犲瘑绠楁硶锛屽畠涓昏鐨勭敤閫旀槸鎶婁竴浜涗簩杩涘埗鏁拌浆鎴愭櫘閫氬瓧绗︾敤浜庣綉缁滀紶杈銆傜敱浜庝竴浜涗簩杩涘埗瀛楃鍦ㄤ紶杈撳崗璁腑灞炰簬鎺у埗瀛楃锛屼笉鑳界洿鎺ヤ紶閫侊紝闇瑕佽浆鎹竴涓嬨傘怉SCII鐮佺殑鑼冨洿鏄0-127锛屽叾涓0-31鍜127杩33涓瓧绗﹀睘浜庢帶鍒跺瓧绗︺傚墿涓32-126杩95涓瓧绗﹀睘浜庡彲鎵撳嵃瀛楃锛屽寘鍚暟瀛椼佸ぇ灏忓啓瀛楁瘝銆佸父鐢ㄧ鍙枫
  • Base64绠楁硶鍘熺悊鍙婂疄鐜
    绛旓細Base64缂栫爜鐨勬濊矾璇寸櫧浜嗭紝灏辨槸鎶婁紶杈撴暟鎹殑姣忎釜瀛楄妭鏄犲皠鎴怉SCII鐮佽〃涓殑鏌愪簺瀛楃锛岃繖鏍峰湪浼犺緭鐨勮繃绋嬩腑锛屽氨涓嶄細鍑虹幇涔辩爜鐨勯棶棰樹簡銆侭ase64绠楁硶瀹氫箟浜嗕竴涓槧灏勮〃锛屽涓嬫墍绀恒傜敱涓婅〃鍙互鐪嬪嚭锛屼箣鎵浠ョО涓築ase64缂栫爜锛屽疄闄呬笂鏄妸鍘熸暟鎹槧灏勬垚浜咥SCII鐮佽〃涓殑64涓瓧绗︺備絾鏄紝64涓瓧绗︽渶澶氳兘鏄犲皠鐨勪綅鏁版槸6bit銆
  • 浠涔堟槸BASE64缂栫爜?
    绛旓細Base64鏄綉缁滀笂鏈甯歌鐨勭敤浜庝紶杈8Bit瀛楄妭浠g爜鐨勭紪鐮佹柟寮忎箣涓锛屽湪鍙戦佺數瀛愰偖浠舵椂锛屾湇鍔″櫒璁よ瘉鐨勭敤鎴峰悕鍜屽瘑鐮侀渶瑕佺敤Base64缂栫爜锛岄檮浠朵篃闇瑕佺敤Base64缂栫爜銆備笅闈㈢畝鍗曚粙缁岯ase64绠楁硶鐨勫師鐞嗭紝鐢变簬浠g爜澶暱灏变笉鍦ㄦ璐村嚭 Base64瑕佹眰鎶婃瘡涓変釜8Bit鐨勫瓧鑺傝浆鎹负鍥涗釜6Bit鐨勫瓧鑺傦紙3*8 = 4*6 = 24锛夛紝鐒跺悗鎶6Bit...
  • 鍔犲瘑鍚庣殑瀛楃涓叉渶鍚庢湁涓や釜鈥==鈥濇槸浠涔鍔犲瘑绠楁硶?
    绛旓細Base64鏄綉缁滀笂鏈甯歌鐨勭敤浜庝紶杈8Bit瀛楄妭鐮佺殑缂栫爜鏂瑰紡涔嬩竴锛孊ase64灏辨槸涓绉鍩轰簬64涓彲鎵撳嵃瀛楃鏉ヨ〃绀轰簩杩涘埗鏁版嵁鐨勬柟娉銆1锛孊ase64 浣跨敤US-ASCII瀛愰泦鐨64涓瓧绗,鍗冲ぇ灏忓啓鐨26涓嫳鏂囧瓧姣嶏紝0锛9锛岋紜锛/銆2锛岀紪鐮佹绘槸鍩轰簬3涓瓧绗︼紝姣忎釜瀛楃鐢8浣嶄簩杩涘埗琛ㄧず锛屽洜姝や竴鍏24浣嶏紝鍐嶅垎涓4鍥涚粍锛屾瘡缁6浣嶏紝琛...
  • Base64缂栫爜鏄姞瀵绠楁硶鍚?
    绛旓細Base64缂栫爜灏辨槸瑕佹妸涓嶅彲瑙佺殑瀛楃杞崲鎴愬父瑙佺殑64涓瓧绗︾殑杩囩▼銆傝繖64涓瓧绗︽槸鍝簺鍛紵閭d箞瀹冨伐浣滃師鐞嗘槸鍟ュ憿锛1锛 棣栧厛鎶婃暣娈典紶杈撳唴瀹瑰叏閮ㄥ垝鍒嗘垚涓変釜瀛楄妭涓缁勩傝繖閲屽氨鏈変簡24bit浜.2锛 鐒跺悗鎶24bit 鍒嗘垚鍥涚粍銆傛瘡涓缁勫氨鏈6bit 3锛夊湪6bit鐨勬渶鍓嶉潰娣诲姞2涓0锛岃繖鏍峰氨鏈変簡8bit 4锛夋妸杩8bit 杞崲鎴愪竴涓...
  • 浼姞瀵绠楁硶:Base64
    绛旓細鍋氳繃缃戠粶閫氫俊鐨刬OSer瀵Base64閮戒笉浼氬緢闄岀敓锛屾秹鍙婂姞瀵嗙殑鏁版嵁閫氬父浼氬湪浼犺緭涔嬪墠鍋氫竴娆ase64杞崲锛屼竴鑸舰寮忓涓 Base64(DES/AES(Data)) 锛屾墍浠ユ湁浜沬OSer灏辨妸Base64褰撲綔鍔犲瘑绠楁硶鐨勪竴绉嶏紝鐢氳嚦涓浜涘湪绾垮伐鍏蜂篃鐩存帴绉板懠Base64涓哄姞瀵/瑙e瘑锛屽疄闄呬笂杩欒浼氬彲澶т簡锛屾湰绡囧洖绛斾互涓嬩笁涓棶棰橈細瑕佸洖绛旂涓涓棶棰橈紝棣栧厛...
  • RSA銆丼HA銆丏ES銆丮D5銆BASE64鐨勫彲閫嗘у垎鏋
    绛旓細BASE64鏄竴涓紪鐮佺畻娉曪紝瀵规暟鎹唴瀹硅繘琛岀紪鐮佺敤鏉ヤ紶杈擄紝铏界劧鏄彲閫嗙殑锛屼絾鏄畠鐨勭紪鐮佹柟寮忔槸鍏紑鐨勶紝鏃犳墍璋撳姞涓嶅姞瀵嗐侭ase64鏄綉缁滀笂鏈甯歌鐨勭敤浜庝紶杈8Bit瀛楄妭鐮佺殑缂栫爜鏂瑰紡涔嬩竴锛Base64灏辨槸涓绉嶅熀浜64涓彲鎵撳嵃瀛楃鏉ヨ〃绀轰簩杩涘埗鏁版嵁鐨勬柟娉銆傚師鏂囨惉杩 https://blog.csdn.net/The_best_/article/details/...
  • base64鍔犲瘑鐨勭粨鏋滆繕鏄瓧绗︿覆鍚
    绛旓細棣栧厛锛孊ase64绠椾笉涓婃槸涓绉嶅姞瀵嗙畻娉曘Base64鏄綉缁滀笂鏈甯歌鐨勭敤浜庝紶杈8Bit瀛楄妭浠g爜鐨勭紪鐮佹柟寮忎箣涓锛屽畠鐨勭洰鐨勬槸鐢ˋSCII涓畾涔夌殑鍙瀛楃鍘昏〃绀轰换鎰忕殑浜岃繘鍒舵暟鎹備箣鎵浠ヨ杩欐牱鍋氾紝鏄洜涓鸿绠楁満涓緢澶氭暟鎹槸鍙兘閫氳繃鍙瀛楃鍘讳紶杈撶殑锛堟瘮濡傛垜浠殑缃戠珯缃戝潃锛屾瘮濡備竴浜涢潰鍚戝瓧绗︾殑缃戠粶鍗忚濡係MTP绛夛級锛屼絾鏄繖浜涙儏鏅湁...
  • base64缂栫爜鏄仛浠涔鐢ㄧ殑?
    绛旓細Base64鏄綉缁滀笂鏈甯歌鐨勭敤浜庝紶杈8Bit瀛楄妭浠g爜鐨勭紪鐮佹柟寮忎箣涓锛屽ぇ瀹跺彲浠ユ煡鐪婻FC2045锝濺FC2049锛屼笂闈㈡湁MIME鐨勮缁嗚鑼冦侭ase64缂栫爜鍙敤浜庡湪HTTP鐜涓嬩紶閫掕緝闀跨殑鏍囪瘑淇℃伅銆備緥濡傦紝鍦↗ava Persistence绯荤粺Hibernate涓紝灏遍噰鐢ㄤ簡Base64鏉ュ皢涓涓緝闀跨殑鍞竴鏍囪瘑绗︼紙涓鑸负128-bit鐨刄UID锛夌紪鐮佷负涓涓瓧绗︿覆锛岀敤浣淗TTP...
  • Java閲,,浠涔堟槸浜岃繘鍒? 浠涔堟槸base64?浠栦滑鏈変粈涔堝尯鍒?
    绛旓細杩欎釜鏄簩杩涘埗涓闆讹紝绛変簬鍗佽繘鍒剁殑浜岋級銆傝嚦浜base64灏辨槸涓濂楀姞瀵绠楁硶鍛楋紝鏈夌偣绫讳技浜庢暟瀛︾殑鏌愪釜鍏紡锛屼綘鎶婁綘鐨勬暟瀛楄緭鍏ュ埌杩欎釜鍏紡灏变細浜х敓鍙﹀涓涓暟瀛楋紝鍔犲瘑灏辨槸鎶婁綘鐨勪俊鎭寜鐓т竴瀹氱殑鏂规硶杞崲鎴愬埆鐨勪俊鎭紝濡傛灉涓嶇煡閬撹В瀵嗘柟娉曪紝鏄棤娉曠悊瑙d俊鎭殑鍐呭鐨勶紝澶ф灏辨槸杩欐牱鐨勬剰鎬濄傝繕涓嶇悊瑙h杩介棶 ...
  • 扩展阅读:base64怎样转成图片 ... base64解码器 ... base64在线解码网站 ... base64在线还原图片 ... base64在线转换器 ... base64编码在线解密 ... base64编码在线转换 ... base64位密码在线加密 ... base64解码为图片 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网