(Translated by https://www.hiragana.jp/)
Base64 - 维基百科,自由的百科全书 とべ转到内容ないよう

Base64

本页使用了标题或全文手工转换
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん

Base64基底きてい64)いち种基于64个可印字いんじらい表示ひょうじ进制すうすえてき表示ひょうじ方法ほうほうよし所以ゆえんごと6个もと为一个单もと,对应ぼう个可印字いんじ。3个相當そうとう於24个位もと,对应于4个Base64单元,そく3个字节可よし4个可印字いんじらい表示ひょうじざいBase64ちゅうてき印字いんじ包括ほうかつ字母じぼA-Za-z数字すうじ0-9,这样共有きょうゆう62个字,此外两个しるし符号ふごうざい不同ふどうてきけい统中而不同ふどういち些如uuencodeてき其他编码方法ほうほう和之かずゆききさきBinHexえいBinHexてき版本はんぽん使用しよう不同ふどうてき64しゅうらい代表だいひょう6个进制数字すうじただししょうためBase64。

Base64常用じょうよう于在通常つうじょう处理ぶんほんかずすえてき场合,表示ひょうじ、传输、そん储一些二进制数据,包括ほうかつMIMEてき电子邮件XMLてき一些复杂数据。

RFC 4648 标准てき Base64 索引さくいんひょう

[编辑]
じゅう进制 进制   じゅう进制 进制   じゅう进制 进制   じゅう进制 进制
0 000000 A 16 010000 Q 32 100000 g 48 110000 w
1 000001 B 17 010001 R 33 100001 h 49 110001 x
2 000010 C 18 010010 S 34 100010 i 50 110010 y
3 000011 D 19 010011 T 35 100011 j 51 110011 z
4 000100 E 20 010100 U 36 100100 k 52 110100 0
5 000101 F 21 010101 V 37 100101 l 53 110101 1
6 000110 G 22 010110 W 38 100110 m 54 110110 2
7 000111 H 23 010111 X 39 100111 n 55 110111 3
8 001000 I 24 011000 Y 40 101000 o 56 111000 4
9 001001 J 25 011001 Z 41 101001 p 57 111001 5
10 001010 K 26 011010 a 42 101010 q 58 111010 6
11 001011 L 27 011011 b 43 101011 r 59 111011 7
12 001100 M 28 011100 c 44 101100 s 60 111100 8
13 001101 N 29 011101 d 45 101101 t 61 111101 9
14 001110 O 30 011110 e 46 101110 u 62 111110 +
15 001111 P 31 011111 f 47 101111 v 63 111111 /
はまたかし =

しめせれい

[编辑]

舉例らいせつ一段いちだん引用いんようたく马斯·霍布斯维坦てき文句もんく

Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.

經過けいかBase64へん碼之變成へんせい

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

编码「Man」てき結果けっかためTWFu詳細しょうさい原理げんり如下:

ぶんほん M a n
ASCII编码 77 97 110
进制 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0
索引さくいん 19 22 5 46
Base64编码 T W F u

ざい此例ちゅう,Base64算法さんぽうしょう3个字节编码为4个字

如果よう编码てき节数不能ふのう3整除せいじょさいきさきかい1个或2个字节,么可以使用しよう下面かめんてき方法ほうほう进行处理:さき使用しよう0节值ざい末尾まつび补足,使つかい其能够被3整除せいじょしかきさきさい进行Base64てき编码。ざい编码きさきてきBase64ぶんほんきさきじょういち个或两个=ごう代表だいひょう补足てき节数。也就说,とうさいきさき剩余じょうよ两个はち(まち补足)节(2个byte)时,さいきさきいち个6てきBase64节块ゆうよん0值,さいきさき附加ふかじょう两个等号とうごう;如果さいきさき剩余じょうよいちはち(まち补足)节(1个byte)时,さいきさきいち个6てきbase节块ゆう两位0值,さいきさき附加ふかいち个等ごう参考さんこう下表かひょう

ぶんほん(1 Byte) A
进制 0 1 0 0 0 0 0 1 0 0 0 0
进制0) 0 1 0 0 0 0 0 1 0 0 0 0 とめむなしはまたかし とめむなしはまたかし
Base64编码 Q Q = =
ぶんほん(2 Byte) B C
进制 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0
进制0) 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 とめむなしはまたかし
Base64编码 Q k M =

应用

[编辑]

变种

[编辑]

base64编码对应てき64个可印字いんじざい一些特定的程序或协议中可能不适合使用,とく别是ひょうだい62+)、63/はまたかし=),いん存在そんざいいち些如てき变种:

编码 编码 换行てき处理 かい码非编码
だい62 だい63 はまたかし ぶんへだた くだりすう こう验和
RFC 1421よう于隐わたし增强ぞうきょう电邮てきBase64(やめ弃用) + / = 强制きょうせい CR+LF 64,まつ尾行びこうしょう于64 いや いや
RFC 2045ようMIMEてきBase64 + / = 强制きょうせい CR+LF 上限じょうげん 76 いや 弃用
RFC 2152: ようUTF-7てきBase64 + / いや いや いや
RFC 3501ようIMAP协议邮箱命名めいめいてきBase64 + , いや いや いや
RFC 4648 §4:标准base64 + / = いや いや
RFC 4648 §5:base64url(URL和文わぶん件名けんめい安全あんぜん标准) - _ = いや いや
RFC 4880よう于OpenPGPてきRadix-64 + / = 强制きょうせい CR+LF 上限じょうげん 76 Radix-64编码24CRC いや

MIME

[编辑]

ざいMIME格式かくしきてき电子邮件なか,Base64以用らいはたbinaryてき序列じょれつすうすえ编码なりASCII序列じょれつ构成てきぶんほん使用しよう时,ざい传输编码方式ほうしきちゅう指定していBase64。使用しようてき包括ほうかつ大小だいしょううつしひしげ丁字ていじははかく26个、数字すうじ10个、ごう+かずはすゆずりは/きょう64个字等号とうごう=もちいさく为填充用じゅうよう

かんせいてきBase64てい义可见RFC 1421RFC 2045。编码きさきてきすうすえ原始げんしすうすえりゃく长,为原らいてきざい电子邮件ちゅうすえRFC 822规定,まい76个字,还需ようじょういち个回车换ぎょう以估さん编码きさきすうすえ长度だい约为げん长的135.1%。

转换てき时候,はた3まとすうすえさききさきにゅういち个24もとてき缓冲ちゅうさきらいてきうらないだかかずすえ不足ふそく3节的话,於緩衝かんしょうちゅうあましたてきもとよう0补足。每次まいじ取出とりで6もといん),按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/なかてきさく为编码后てき输出,ちょくいた全部ぜんぶ输入すうすえ转换完成かんせい

若原わかはらすうすえ长度3てき倍數ばいすう时且剩1個いっこ輸入ゆにゅうすうよりどころのりざいへん結果けっか2=わかあましも2輸入ゆにゅうすうよりどころのりざいへん結果けっか1個いっこ=

IRCu

[编辑]

ざいIRCuえいIRCuとう软件しょ使用しようてきP10 IRCふく务器间协议中,对客户与ふく务器てき消息しょうそく类型ごう(client/server numerics)进制IPさいようりょうBase64编码。消息しょうそく类型ごうてき长度固定こてい为3节,直接ちょくせつ编码为4个字节而需要じゅようはまたかし。对IP进行编码时,则需よう在地ざいちぜん添加てんかいち些0とく使つかい以编码为整数せいすう个字节。这里所用しょようてき符号ふごうしゅうあずか前述ぜんじゅつMIMEてき也有やゆうしょ不同ふどうはた+/あらためなりりょう[]

UTF-7

[编辑]

UTF-7いち个修改版かいはんBase64(Modified Base64)。主要しゅようしょうUTF-16まとすうすえようBase64てき方法ほうほう编码为可しるしてきASCII序列じょれつ目的もくてき传输Unicodeすうすえ主要しゅようてき别在于不よう等号とうごう=补餘,いん为该通常つうじょう需要じゅよう大量たいりょうてき转译。

标准RFC 2152,《A Mail-Safe Transformation Format of Unicode》。

URL

[编辑]

Base64编码可用かよう于在HTTP环境传递较长てき标识しんいきれい如,ざいJava持久じきゅうけいHibernateなか,就采ようりょうBase64らいしょう一个较长的唯一标识符(いち般为128-bitてきUUID)编码为一个字くし用作ようさくHTTPひょう单和HTTP GET URLなかてきさんすうざい其他应用ほどじょちゅう,也常つね需要じゅよう二进制数据编码为适合放在URL(包括ほうかつ隐藏ひょう单域)ちゅうてき形式けいしき。此时,さいようBase64编码仅比较简たんどう时也具有ぐゆう不可ふか读性,そくしょ编码てきすうすえかいひとよう肉眼にくがんしょ直接ちょくせついた

しか而,标准てきBase64并不适合直接ちょくせつざいURLうら传输,いん为URL编码かい标准Base64ちゅうてき/+变为がた%XXてき形式けいしき,而这些%ごうざいそんいれすうすえ库时还需要じゅようさい进行转换,いんANSI SQLちゅうやめしょう%ごう用作ようさくどおりはい

为解决此问题,さいよういちよう于URLてきあらため进Base64编码,它不ざい末尾まつびはまたかし=ごう,并将标准Base64ちゅうてき+/ぶん别改なりりょう-_,这样就免りょうざいURL编解码和すうすえ库存储时所要しょよう做的转换,避免りょう编码しんいき长度ざい此过ほどなかてき增加ぞうか,并统一了数据库、おもて单等处对ぞう标识てき格式かくしき

另有いちよう于正则表达式てきあらため进Base64变种,它将+/あらためなりりょう!-いん+*以及前面ぜんめんざいIRCuちゅうもちいいたてき[]ざいせい则表达式ちゅう可能かのう具有ぐゆう特殊とくしゅ含义。

此外还有いち些变种,它们しょう+/あらため_-ある._用作ようさく编程语言ちゅうてき标识名称めいしょうある.-ようXMLなかてきNmtoken)甚至_:よう于XMLちゅうてきName)。

其他

[编辑]
  • 垃圾訊息傳播でんぱしゃようBase64らい避過はん垃圾郵件工具こうぐいんため些工通常つうじょうかい翻譯ほんやくBase64てき訊息。
  • ざいLDIFえいLDIF檔案,Base64用作ようさく编码くし

あい事件じけん

[编辑]
  • 2018ねん2がつ电子邮件ほどじょ EximえいExim 发现重大じゅうだいほら,编号为 CVE-2018-6789页面そん档备份そん互联网档あんてき緩衝かんしょう溢位ほらまこと许攻击者ざいふく务器じょう远程执行恶意だい码。ほら于 base64 かい码函すうちゅうかげ响 Exim v4.90.1 まえてき所有しょゆう版本はんぽん达 40 万服务器受到影响。[1][2]

まいり

[编辑]

参考さんこう资料

[编辑]
  1. ^ そん副本ふくほん. [2018-03-07]. (原始げんし内容ないようそん于2018-07-23). 
  2. ^ そん副本ふくほん. [2018-03-07]. (原始げんし内容ないようそん于2018-03-08). 

外部がいぶ链接

[编辑]

ざい线Base64编码