Skip to main content

16. References (参考文献)

16.1 Normative References (规范性参考文献)

规范性参考文献是实现RFC 4648所必需的文档。


[1] RFC 20 - ASCII格式

标题: ASCII format for network interchange
作者: V. Cerf
日期: 1969年10月
状态: STANDARD

说明:
定义了ASCII字符集,Base编码使用ASCII字符子集

关联: Base64/32/16都使用ASCII字符集的子集

重要性: 基础字符集定义


[2] RFC 2119 - 关键词定义

标题: Key words for use in RFCs to Indicate Requirement Levels
作者: S. Bradner
日期: 1997年3月
BCP: 14

说明:
定义了MUST、SHOULD、MAY等关键词的含义

关联: RFC 4648使用RFC 2119定义的关键词

关键词:

  • MUST (必须)
  • MUST NOT (禁止)
  • SHOULD (应该)
  • SHOULD NOT (不应该)
  • MAY (可以)
  • OPTIONAL (可选)

参考: RFC 4648第2章


16.2 Informative References (信息性参考文献)

信息性参考文献提供背景信息和相关上下文。


[3] RFC 1421 - PEM加密

标题: Privacy Enhancement for Internet Electronic Mail: 
Part I: Message Encryption and Authentication Procedures
作者: J. Linn
日期: 1993年2月
状态: Historic

说明:
PEM (Privacy Enhanced Mail) 使用Base64编码
行长度限制: 64字符

关联: Base64编码的早期应用

影响: MIME继承了PEM的Base64编码


[4] RFC 2045 - MIME Part One

标题: Multipurpose Internet Mail Extensions (MIME) 
Part One: Format of Internet Message Bodies
作者: N. Freed, N. Borenstein
日期: 1996年11月
状态: STANDARD

说明:
定义了MIME中的Base64 Content-Transfer-Encoding
行长度限制: 76字符

关联: Base64在MIME中的标准化应用

重要性: 最广泛使用的Base64应用场景

参考: RFC 4648第3.1节(行长度讨论)


[5] RFC 2440 - OpenPGP

标题: OpenPGP Message Format
作者: J. Callas, L. Donnerhacke, H. Finney, R. Thayer
日期: 1998年11月
状态: STANDARD

说明:
OpenPGP使用Base64编码(Radix-64)
RFC 4648修正了从此RFC复制的示例错误

关联: Base64在加密中的应用

注意: RFC 4648修正了此RFC中的示例错误


[6] RFC 4033 - DNSSEC简介

标题: DNS Security Introduction and Requirements
作者: R. Arends, R. Austein, M. Larson, D. Massey, S. Rose
日期: 2005年3月
状态: STANDARD

说明:
DNSSEC使用Base64编码公钥和签名

关联: Base64在DNS安全中的应用

相关: RFC 5155 (NSEC3使用Base32Hex)


[7] RFC 2938 - 复合媒体特性

标题: Identifying Composite Media Features
作者: G. Klyne, L. Masinter
日期: 2000年9月
状态: STANDARD

说明:
定义了Base32编码的一个变体
Base32Hex的基础

关联: Base32Hex编码的起源

参考: RFC 4648第7章


[8] RFC 3501 - IMAP4rev1

标题: INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
作者: M. Crispin
日期: 2003年3月
状态: STANDARD

说明:
IMAP使用Modified UTF-7,包含特殊的Base64变体

关联: Base64的特殊应用

特点: 使用 & 作为转义,, 替代 =

参考: RFC 4648第3.4节


[9] RFC 3986 - URI语法

标题: Uniform Resource Identifier (URI): Generic Syntax
作者: T. Berners-Lee, R. Fielding, L. Masinter
日期: 2005年1月
STD: 66

说明:
定义了URI语法和百分号编码
Base64URL用于避免百分号编码

关联: Base64URL的动机

问题: 标准Base64的+和/在URL中需要编码

解决: Base64URL使用-和_

参考: RFC 4648第5章


[10] DNSSEC哈希认证拒绝存在

标题: DNSSEC Hash Authenticated Denial of Existence
作者: B. Laurie, G. Sisson, R. Arends, D. Blacka
日期: 2006年6月
状态: Work in Progress

说明:
NSEC3使用Base32Hex编码哈希值
需要排序保持属性

关联: Base32Hex的主要应用

后续: 成为RFC 5155


[11] SASL GSSAPI机制

标题: SASL GSSAPI mechanisms
作者: J. Myers
日期: 2000年5月
状态: Work in Progress

说明:
讨论了Base32编码的使用

关联: Base32在认证中的应用


[12] P2P-hackers邮件列表

标题: Post to P2P-hackers mailing list
作者: B. Wilcox-O'Hearn
日期: 2001年9月
URL: http://zgp.org/pipermail/p2p-hackers/2001-September/000315.html

说明:
讨论了URL安全的Base32变体
建议使用~作为第63个字符

关联: Base64URL字母表选择的讨论

结果: RFC 4648选择了-和_而不是~


相关RFC(非正式引用)

后续RFC(使用RFC 4648)

以下RFC在RFC 4648之后发布,并引用或使用了Base编码:

RFC 6238 - TOTP (使用Base32)
RFC 7515 - JSON Web Signature (使用Base64URL)
RFC 7519 - JSON Web Token (使用Base64URL)
RFC 5155 - DNSSEC NSEC3 (使用Base32Hex)
RFC 8259 - JSON (可包含Base64数据)

引用关系图

Base编码的演进:

RFC 20 (ASCII, 1969)

RFC 1421 (PEM Base64, 1993)

RFC 2045 (MIME Base64, 1996)

RFC 3548 (Base编码, 2003)

RFC 4648 (Base编码, 2006) ← 本RFC

RFC 7515/7519 (JWT, 2015)

实现参考

标准库实现

多种编程语言的标准库实现了RFC 4648:

Python:   base64模块
Java: java.util.Base64 (Java 8+)
Go: encoding/base64
C: 参考实现 (josefsson.org)
Node.js: Buffer类
PHP: base64_encode/decode
Ruby: Base64模块
Rust: base64 crate

在线资源

官方资源

RFC Editor:
https://www.rfc-editor.org/rfc/rfc4648.txt

IETF DataTracker:
https://datatracker.ietf.org/doc/html/rfc4648

勘误表:
https://www.rfc-editor.org/errata_search.php?rfc=4648

参考实现:
http://josefsson.org/base-encoding/

工具和测试

在线Base64工具:
- base64decode.org
- base64encode.org

在线Base32工具:
- cryptii.com
- base32-decode.com

多功能工具:
- CyberChef (gchq.github.io/CyberChef)

文献检索建议

查找相关RFC

# 搜索引用RFC 4648的文档
https://datatracker.ietf.org/doc/rfc4648/referencedby/

# 搜索Base64相关RFC
在RFC Editor搜索 "base64"

# 查看更新的RFC
检查RFC 4648是否被更新或废弃

学术引用

学术论文引用格式:

APA:
Josefsson, S. (2006). The Base16, Base32, and Base64
Data Encodings (RFC 4648). Internet Engineering Task Force.

IEEE:
S. Josefsson, "The Base16, Base32, and Base64 Data Encodings,"
RFC 4648, Oct. 2006.

Chicago:
Josefsson, Simon. 2006. "The Base16, Base32, and Base64
Data Encodings." RFC 4648. Internet Engineering Task Force.

总结

RFC 4648建立在以下基础之上:

技术基础:
✅ ASCII字符集 (RFC 20)
✅ RFC关键词 (RFC 2119)

应用基础:
✅ PEM (RFC 1421)
✅ MIME (RFC 2045)
✅ OpenPGP (RFC 2440)

扩展应用:
✅ DNSSEC (RFC 4033, 5155)
✅ URI (RFC 3986)
✅ IMAP (RFC 3501)

这些参考文献共同构成了Base编码标准的完整生态系统。