Base64缂栬В佸畬鍏ㄦ寚鍗楋細浠庡鐞嗗埌搴旂敤的勫叏鏂逛綅瑙f
胖袋鼠锟?/span>
2026-04-26
鍦ㄧ幇浠h蒋浠跺紑鍙戜腑锛孊ase64缂栬В佹槸涓�椤瑰�浣嗚嚦鍏抽噸瑕佺殑鎶�鏈�傛棤璁烘槸鍦ㄥ墠绔紑鍙戜腑的浘鐗囧祵鍏ャ�佸悗绔疉PI的勬暟鎹紶杈擄紝杩樻槸鍦ㄧ數愰偖浠堕浠剁殑澶悊涓紝Base64藉彂鎸ョ潃涓嶅彲鏇夸的勪綔鐢ㄣ�傜劧鑰岋紝堝�鍙戣�Base64的勭悊瑙d粎鍋滅鍦ㄨ〃闈紝瑰叾ヤ綔鍘熺悊鍜屾渶浣冲疄璺电煡涔敋灏?/p>
鏈枃灏嗗甫浣犳繁鍏ヤ簡瑙ase64的勫伐浣滃師鐞嗐�佺佽В鐮佽繃绋�佸父瑙佸簲ㄥ満鏅紝浠ュ強濡備綍樻晥浣跨敤Base64缂栬В佸伐鍏枫�傞�氳繃鏈枃的勫涔狅紝浣犲皢鍏ㄩ潰鎺屾彙Base64鎶�鏈紝鍦ㄥ疄闄呭紑鍙戜腑鏇村姞績搴墜锟?/p>
涓�銆丅ase64的勫鏈锟?/h2>
1. 浠�涔堟槸Base64锟�?/h3>
Base64鏄竴绉嶅熀锟�?4涓彲鎵撳嵃瀛鏉ヨ〃绀轰簩杩涘埗鏁版嵁的勭佹柟忋�傚畠灏嗕簩杩涘埗鏁版嵁杞崲涓篈SCII瀛涓叉牸忥紝浠ヤ究鍦ㄤ笉寔浜岃繘鍒舵暟鎹紶杈撶殑鍦烘櫙涓娇鐢?/p>
Base64缂栫爜的牳蹇冩�濇兂鏄
- 锟�?涓瓧鑺傦紙24浣嶏級的簩杩涘埗鏁版嵁鍒掑垎锟�?锟�?浣嶇殑锟?/li>
- 姣忎6浣嶇粍瑰簲涓�涓狟ase64瀛
- 濡傛灉鏈�鍚庝缁笉锟?涓瓧鑺傦紝鍒欑=濉
2. Base64瀛锟�?/h3>
Base64浣跨敤浠ヤ笅64涓瓧绗︼細
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
姝ゅ锛屽綋鏁版嵁闀害涓嶆槸3的勫�嶆暟鏃讹紝浣跨=浣滀负濉厖瀛锟�?/p>
浜屻�丅ase64缂栫爜鍘熺悊
1. 缂栫爜杩囩▼璇﹁В
Base64缂栫爜的叿浣撴楠ゅ涓嬶細
- 鍒嗙粍锟?/strong>灏嗚鍏ョ殑浜岃繘鍒舵暟鎹瘡3涓瓧鑺傦紙24浣嶏級鍒嗕负涓�锟�?/li>
- 鎷嗗垎锟?/strong>灏嗘瘡锟?4浣嶆媶鍒嗕负4锟�?浣嶇殑愮
- 鏄犲皠锟?/strong>灏嗘瘡锟?浣嶅瓙缁浆鎹负瑰簲的凚ase64瀛
- 濉厖锟?/strong>濡傛灉鏈�鍚庝缁笉锟?涓瓧鑺傦紝锟�?濉厖锛屽苟鍦ㄨ鍑烘椂娣诲=浣滀负鏍
缂栫爜绀轰緥锛氱佸瓧绗︿ "Man"
姝ラ1锛氬 "Man" 杞崲涓篈SCII锟�?/p>
M: 77 (01001101)
A: 65 (01000001)
N: 78 (01001110)
姝ラ2锛氬悎骞朵簩杩涘埗锟?/p>
01001101 01000001 01001110
姝ラ3锛氭媶鍒嗕负4锟�?浣嶇
010011 010100 000101 001110
姝ラ4锛氳浆鎹负Base64瀛
010011 = 19 锟�?T
010100 = 20 锟�?U
000101 = 5 锟�?F
001110 = 14 锟�?O
鏈�缁堢粨鏋滐細"Man" 锟�?"TUFN"
2. 濉厖鏈哄埗
褰撹鍏ユ暟鎹暱搴︿笉锟�?的勫�嶆暟鏃讹紝Base64浣跨敤濉厖鏈哄埗锟?/p>
- 濡傛灉鍓1涓瓧鑺傦紙8浣嶏級锛屽垯濉2锟�?瀛妭锛岃锟�?涓狟ase64瀛锛屾渶锟?涓瓧绗︾敤==濉
- 濡傛灉鍓2涓瓧鑺傦紙16浣嶏級锛屽垯濉1锟�?瀛妭锛岃锟�?涓狟ase64瀛锛屾渶锟?涓瓧绗︾敤=濉
濉厖绀轰緥锛氱佸瓧绗︿ "Ma"
姝ラ1锛氬 "Ma" 杞崲涓篈SCII锟�?/p>
M: 77 (01001101)
A: 65 (01000001)
姝ラ2锛氬悎骞朵簩杩涘埗浣嶅苟濉
01001101 01000001 00000000
姝ラ3锛氭媶鍒嗕负4锟�?浣嶇
010011 010100 000100 000000
姝ラ4锛氳浆鎹负Base64瀛
010011 = 19 锟�?T
010100 = 20 锟�?U
000100 = 4 锟�?E
000000 = 0 锟�?A
姝ラ5锛氭坊鍔犲~锟�?/p>
TUEA 锟�?TUE=
涓�丅ase64瑙g爜鍘熺悊
1. 瑙g爜杩囩▼璇﹁В
Base64瑙g爜鏄紪佺殑嗚繃绋細
- 鍘櫎濉厖锟?/strong>绉櫎鏈锟�?濉厖
- 鏄犲皠锟?/strong>灏嗘瘡涓狟ase64瀛杞崲涓哄搴旂6浣嶄簩杩涘埗锟�?/li>
- 鍚堝苟锟?/strong>锟�?锟�?浣嶇粍鍚堝苟锟�?锟�?浣嶇
- 绉櫎濉厖浣嶏細濡傛灉鏈夊~鍏咃紝绉婚櫎鏈的勫~鍏
瑙g爜绀轰緥锛氳В锟�?"TUFN"
姝ラ1锛氬Base64瀛杞崲锟?浣嶄簩杩涘埗
T: 19 锟�?010011
U: 20 锟�?010100
F: 5 锟�?000101
N: 14 锟�?001110
姝ラ2锛氬悎骞朵负24浣嶄簩杩涘埗
010011010100000101001110
姝ラ3锛氭媶鍒嗕负3锟�?浣嶇
01001101 01000001 01001110
姝ラ4锛氳浆鎹负ASCII瀛
01001101 = 77 锟�?M
01000001 = 65 锟�?A
01001110 = 78 锟�?N
鏈�缁堢粨鏋滐細"TUFN" 锟�?"Man"
鍥涖�丅ase64的勫簲鐢ㄥ満锟�?/h2>
1. 鍓嶇�鍙戜腑的勫簲锟?/h3>
鍥剧墖宓屽叆
灏嗗浘鐗浆鎹负Base64缂栫爜锛屽彲浠ョ洿鎺ュ祵鍏ュ埌HTML鎴朇SS涓紝鍑忓皯HTTP璇锋眰锟?/p>

background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==');
瀛椾綋鍥
灏嗗瓧浣撴枃浠惰浆鎹负Base64缂栫爜锛屽祵鍏ュ埌CSS涓
@font-face {
font-family: 'MyFont';
src: url('data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAA...') format('woff');
font-weight: normal;
font-style: normal;
}
2. 鍚庣�鍙戜腑的勫簲锟?/h3>
API鏁版嵁浼犺緭
鍦ˋPI涓紶杈撲簩杩涘埗鏁版嵁锛屽鍥剧銆佹枃浠剁瓑锟?/p>
// 鍓嶇鍙戦�丅ase64缂栫爜的浘锟?
const imageFile = document.querySelector('input[type="file"]').files[0];
const reader = new FileReader();
reader.onloadend = function() {
const base64Image = reader.result;
fetch('/api/upload', {
method: 'POST',
body: JSON.stringify({ image: base64Image }),
headers: { 'Content-Type': 'application/json' }
});
};
reader.readAsDataURL(imageFile);
// 鍚庣鎺ユ敹骞跺锟�?
app.post('/api/upload', (req, res) => {
const base64Image = req.body.image.split(';base64,').pop();
const buffer = Buffer.from(base64Image, 'base64');
// 澶勭悊鍥剧...
res.send('Image uploaded');
});
鏁版嵁搴撳瓨锟�?/h4>
灏嗗鏂囦欢樺偍涓築ase64缂栫爜的瓧绗︿锟?/p>
-- 鍒涘缓锟?
CREATE TABLE user_avatars (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
avatar_base64 TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 鎻掑叆鏁版嵁
INSERT INTO user_avatars (user_id, avatar_base64)
VALUES (1, 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==');
3. 鍏朵搴旂敤鍦烘櫙
- 鐢靛瓙閭闄欢锟?/strong>鍦∕IME鍗忚涓紝闄勪欢閫父浣跨敤Base64缂栫
- XML鍜孞SON锟�?/strong>鍦ㄤ笉鏀寔浜岃繘鍒舵暟鎹殑鏍煎紡涓紶杈撲簩杩涘埗鏁版嵁
- Cookie鍜RL锟�?/strong>瀛樺偍浜岃繘鍒舵暟鎹紝浣嗛渶瑕佹敞鎰廢RL瀹叏的凚ase64鍙樹
- 璇佷功鍜屽瘑閽ワ鍦≒EM鏍煎紡涓紝璇佷功鍜屽瘑閽ラ�氬父浣跨敤Base64缂栫
浜斻�丅ase64的勫彉锟?/h2>
1. Base64URL
涓轰簡鍦║RL涓畨鍏ㄤ娇鐢˙ase64锛孊ase64URL瀵爣鍑咮ase64杩涜浜嗕慨癸細
Base64URL轰緥锟�?/h4>
标准噯Base64: TUFN
Base64URL: TUFN
标准噯Base64: TUE=
Base64URL: TUE
标准噯Base64: TU0=
Base64URL: TU0
2. Base32鍜孊ase16
- Base32锟�?/strong>浣跨32涓瓧绗︼紝鏇撮�傚悎浜虹闃呰锛屽父ㄤ簬涓�娆℃�у瘑侊紙OTP锟�?/li>
- Base16锟�?/strong>浣跨16涓瓧绗︼紙0-9, A-F锛紝瀹為涓婂氨鏄崄鍏繘鍒剁紪锟�?/li>
鍏�丅ase64缂栬В佸伐鍏殑浣跨
1. 在线ュ
浣跨敤在线Base64缂栬В佸伐鍏峰彲浠ュ揩熻繘琛岀佸拰瑙g爜鎿嶄綔锟�?/p>
🦘憠 绔嵆浣跨敤锟�?/strong>Base64 缂栬В锟�?/a>
2. 缂栫▼璇█涓殑Base64
JavaScript
// 缂栫
const text = 'Hello, World!';
const encoded = btoa(text);
console.log(encoded); // "SGVsbG8sIFdvcmxkIQ=="
// 瑙g
const decoded = atob(encoded);
console.log(decoded); // "Hello, World!"
// Base64URL缂栫
function base64urlEncode(str) {
return btoa(str)
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
// Base64URL瑙g
function base64urlDecode(str) {
str = str.replace(/-/g, '+').replace(/_/g, '/');
while (str.length % 4) {
str += '=';
}
return atob(str);
}
Python
import base64
# 缂栫
text = 'Hello, World!'
encoded = base64.b64encode(text.encode('utf-8')).decode('utf-8')
print(encoded) # "SGVsbG8sIFdvcmxkIQ=="
# 瑙g
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded) # "Hello, World!"
# Base64URL缂栫
import base64
import urllib.parse
def base64url_encode(data):
return base64.urlsafe_b64encode(data).rstrip(b'=').decode('utf-8')
def base64url_decode(data):
padding = '=' * (4 - (len(data) % 4))
return base64.urlsafe_b64decode(data + padding)
Java
import java.util.Base64;
// 缂栫
String text = "Hello, World!";
String encoded = Base64.getEncoder().encodeToString(text.getBytes());
System.out.println(encoded); // "SGVsbG8sIFdvcmxkIQ=="
// 瑙g
byte[] decodedBytes = Base64.getDecoder().decode(encoded);
String decoded = new String(decodedBytes);
System.out.println(decoded); // "Hello, World!"
// Base64URL缂栫
String base64UrlEncoded = Base64.getUrlEncoder().encodeToString(text.getBytes());
System.out.println(base64UrlEncoded); // "SGVsbG8sIFdvcmxkIQ"
3. 鍛戒护琛屽伐锟�?/h3>
Linux/macOS
# 缂栫
echo -n "Hello, World!" | base64
# 杈撳: SGVsbG8sIFdvcmxkIQ==
# 瑙g
echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d
# 杈撳: Hello, World!
Windows (PowerShell)
# 缂栫
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("Hello, World!"))
# 杈撳: SGVsbG8sIFdvcmxkIQ==
# 瑙g
[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("SGVsbG8sIFdvcmxkIQ=="))
# 杈撳: Hello, World!
涓冦�丅ase64的勪缂虹
1. 浼偣
- 氱敤э鍑犱鎵�鏈紪绋瑷�閮藉師鐢熸鎸丅ase64
- 瀹叏э灏嗕簩杩涘埗鏁版嵁杞崲涓哄彲鎵撳嵃瀛锛岄伩鍏嶄紶杈撻敊锟?/li>
- 渚挎嵎鎬э鍙互鐩存帴宓屽叆鍒版枃鏈牸忎腑
- 标准鍖栵鏈纭殑RFC标准锛圧FC 4648锟�?/li>
2. 缂虹
- 鏁版嵁鑶ㄨ儉锟�?/strong>Base64缂栫爜鍚庣殑鏁版嵁澶у浼氬鍔犵33%
- ц兘�閿�锟?/strong>缂栫爜鍜岃В鐮佽繃绋渶瑕澶殑璁$畻
- 涓嶉�傚悎澶ф枃浠讹細瀵簬澶ф枃浠紝Base64浼氬鑷村唴瀛樺崰鐢ㄨ繃锟�?/li>
- 涓嶆槸鍔犲瘑锟�?/strong>Base64鏄侊紝涓嶆槸鍔犲瘑锛屼笉鑳界敤浜庢暟鎹繚锟�?/li>
鍏�丅ase64浣跨敤鏈�浣冲疄锟�?/h2>
1. 浣曟椂浣跨敤Base64
- 浼犺灏忓昂哥殑浜岃繘鍒舵暟锟?/li>
- 宓屽叆鍥剧銆佸瓧浣撶瓑璧鍒癏TML/CSS
- 鍦ㄤ笉鏀寔浜岃繘鍒舵暟鎹殑鍗忚涓紶杈撴暟锟�?/li>
- 瀛樺偍灏忔枃浠跺埌鏁版嵁锟�?/li>
2. 浣曟椂涓嶄娇鐢˙ase64
- 澶ф枃浠朵紶杈擄紙浣跨敤鏂囦涓婁紶锟�?/li>
- 鏁版嵁鍔犲瘑锛堜娇鐢ㄧ湡姝g殑鍔犲瘑绠硶锟�?/li>
- ц兘鏁忔劅的勫锟�?/li>
- 闇�瑕佸帇缂╃殑鏁版
3. ц兘浼樺
- 鎵归噺澶悊锟?/strong>瀵簬澶ч噺鏁版嵁锛屼娇ㄦ閲忕紪锟�?瑙g
- 娴佸紡澶悊锟?/strong>瀵簬澶ф枃浠紝浣跨敤娴佸紡缂栫/瑙g
- 缂撳瓨锟?/strong>缂撳瓨缂爜缁撴灉锛岄伩鍏嶉噸澶嶇锟�?/li>
- 夋鍚堥�傜殑搴擄浣跨敤樻�ц兘的凚ase64锟�?/li>
涔濄�佸父瑙棶棰樹笌瑙e喅鏂规
1. Base64缂栫爜鍚庢暟鎹彉澶ф�庝箞鍔烇紵
杩欐槸e父鐜拌薄锛孊ase64缂栫爜浼鍔犵33%的勬暟鎹ぇ灏忋�傚浜庡ぇ鏂囦锛岃�檻浣跨敤鏂囦欢涓婁紶鑰屼笉鏄疊ase64缂栫爜锟?/p>
2. Base64缂栫爜的浘鐗囧杞芥參庝箞鍔烇
瀵簬杈冨ぇ的浘鐗囷紝寤鸿浣跨敤鍗曠的勫浘鐗囨枃浠紝鑰屼笉鏄疊ase64缂栫爜銆傚彧鏈皬鍥炬爣鍜屽皬鍥剧墖閫傚悎浣跨Base64缂栫爜宓屽叆锟�?/p>
3. 濡備綍澶悊Base64URL缂栫爜锟?/h3>
浣跨敤涓撻棬的凚ase64URL缂栫/瑙g爜鍑芥暟锛屾垨鎵姩鏇挎崲瀛骞跺鐞嗗~鍏咃?/p>
4. Base64缂栫爜的畨鍏ㄦ�у浣
Base64鏄侊紝涓嶆槸鍔犲瘑銆備笉瑕佷娇鐢˙ase64鏉ヤ繚鎶ゆ晱鎰熸暟鎹紝搴旇浣跨敤熸的勫姞嗙畻娉?/p>
5. 濡備綍岃瘉Base64缂栫爜的湁鏁堟�э
鍙互浣跨敤姝e琛ㄨ忛獙璇丅ase64鏍煎紡锛屾垨灏濊瑙g爜骞舵鏌ユ槸鍚︽垚鍔燂?/p>
鍗併�佺粨锟?/h2>
Base64缂栬В佹槸涓�椤瑰�浣嗗己澶х殑鎶�鏈紝鍦ㄧ幇浠h蒋浠跺紑鍙戜腑鏈夌潃骞挎硾的簲鐢ㄣ�傞�氳繃鏈枃的涔狅紝浣犲簲璇ュ凡缁忔帉鎻′簡Base64的勫伐浣滃師鐞嗐�佺佽В鐮佽繃绋�佸父瑙佸簲ㄥ満鏅互鍙婃渶浣冲疄璺碉拷?/p>
鍦ㄥ疄闄紑鍙戜腑锛屽悎鐞嗕娇鐢˙ase64鍙互瑙e喅寰堝鏁版嵁浼犺鍜屽瓨鍌ㄧ殑闂锛屼絾涔熻娉ㄦ剰鍏跺闄愭�э紝厤鍦ㄤ笉傚悎的勫鏅腑浣跨敤锟�?/p>
屾湜鏈枃鑳藉姪浣犳洿濂藉湴鐞嗚В鍜屽簲鐢˙ase64鎶�鏈紝鍦ㄥ紑鍙戜腑鏇村績搴墜銆傚鏋滀綘闇�瑕佸揩熻繘琛孊ase64缂栬В佹搷浣滐紝鍙互浣跨敤鎴戜滑的勫绾垮伐鍏凤紝瀹冪畝鍗曟鐢紝寔鎵归噺澶悊鍜屽悇绉岯ase64鍙樹綋锟?/p>
🦘憠 绔嵆浣跨敤锟�?/strong>Base64 缂栬В锟�?/a>