跳到正文
编写
登录

帮助:工具和科普标准页面

更多

本页适用于工具、编码、密码、术语、规则和方法。开头用普通段落说明它是什么、解决什么问题;现有 Base16、凯撒加密、RXSSTV 等条目可按内容选择以下章节。下文以 Base16 为例,演示定义、规则、完整例子、边界和来源的写法。

基本定义

先说明概念、处理对象和用途。工具条目则写工具名称、用途、运行平台、官方地址和适用版本;这些信息以实际核对结果为准。 Base16(十六进制编码)使用十六个字符表示数据,每个字节对应两个十六进制字符。它是数据表示方法,不应与提供保密性的加密混淆。[1] 如果简介确实需要突出显示,可以插入“条目摘要”;普通短导语直接写段落即可。

摘要

Base16 用十六进制字符表示数据,每个字节对应两个字符;本例完整展示转换与复核过程。

{{条目摘要|内容=Base16 用十六进制字符表示数据,每个字节对应两个字符;本例完整展示转换与复核过程。}}


输入与规则

写清处理单位、字母表、排列或计算步骤。不要只给工具链接而省略规则。本例按字节处理:高四位在前、低四位在后,各自映射成一个十六进制字符。

四位数值 对应字符
0 至 9 0 至 9
10、11、12、13、14、15 A、B、C、D、E、F
{| class="wikitable"
! 四位数值 !! 对应字符
|-
| 0 至 9 || 0 至 9
|-
| 10、11、12、13、14、15 || A、B、C、D、E、F
|}

较长的字符表按内容排版,使用普通表格;原始符号、大小写和有意义的空格必须保留。

完整示例

给出输入、参数、关键中间值、完整输出和复核依据。编码与解码都有意义时,分别说明两个方向,不把不可逆算法写成可恢复。

过程与验证 · 含完整解答
十六进制文本的转换
输入

666F6F

方法

每两个十六进制字符表示一个字节,按 ASCII 文本读取。

过程
  1. 分为 66 6F 6F。
  2. 字节值为十进制 102 111 111。
  3. 对应小写字符 f、o、o。
结果

foo

验证

RFC 4648 第 10 节给出相同测试向量。

{{解谜记录
|标题=十六进制文本的转换
|输入=<code>666F6F</code>
|方法=每两个十六进制字符表示一个字节,按 ASCII 文本读取。
|过程=
# 分为 <code>66 6F 6F</code>。
# 字节值为十进制 <code>102 111 111</code>。
# 对应小写字符 <code>f</code>、<code>o</code>、<code>o</code>。
|结果=<code>foo</code>
|验证=[https://www.rfc-editor.org/rfc/rfc4648.html#section-10 RFC 4648 第 10 节]给出相同测试向量。
}}

反向复核:将文本 foo 的字节 66 6F 6F 逐字节写成十六进制,得到 666F6F,与 RFC 4648 第 10 节一致。[2]

程序与输出

程序示例用预格式化文本,写清运行方式和预期输出;不要让读者自行猜程序的执行结果。下面是 Python 3 的完整例子:

value = "666F6F"
result = bytes.fromhex(value).decode("ascii")
print(result)
# 输出:foo
<pre>value = "666F6F"
result = bytes.fromhex(value).decode("ascii")
print(result)
# 输出:foo</pre>


界面或图解

解释工具操作时,按“输入什么—选择什么—输出什么”描述;需要截图或示意图时可以使用“图片说明”。此处借用数独图片展示写法,不作为 Base16 的算法图。

数独图片,仅演示排版
说明画面中需要读者注意的部分。此图不属于上方转换示例。 / 文件描述页中的来源与版权信息
{{图片说明|图片=[[文件:Sudoku.webp|缩略图|居中|300px|数独图片,仅演示排版]]|说明=说明画面中需要读者注意的部分。此图不属于上方转换示例。|来源=[[:文件:Sudoku.webp|文件描述页中的来源与版权信息]]}}

需要分步说明操作时插入“步骤”:

01
复核输入与输出

输入 666F6F,按十六进制字节转成 ASCII 文本,输出应为 foo;保留输入和所用参数。

{{步骤|序号=01|标题=复核输入与输出|内容=输入 666F6F,按十六进制字节转成 ASCII 文本,输出应为 foo;保留输入和所用参数。}}


参数与边界

列出影响结果的参数、输入约束、错误情形及不可逆之处。以下说明针对本页给出的纯十六进制输入,不代替其他工具各自的参数文档。

情况 如何说明
文本与字节 编码处理的是字节;文本转字节时要说明字符编码。本例为 ASCII。
不完整字节 两个十六进制字符对应一个字节;奇数个字符不能直接组成完整字节序列。
非法字符 不自行删除无法解释的字符;先核对输入格式和工具支持范围。
填充 RFC 4648 的 Base16 不使用 Base64 那样的等号填充。
{| class="wikitable"
! 情况 !! 如何说明
|-
| 文本与字节 || 编码处理的是字节;文本转字节时要说明字符编码。本例为 ASCII。
|-
| 不完整字节 || 两个十六进制字符对应一个字节;奇数个字符不能直接组成完整字节序列。
|-
| 非法字符 || 不自行删除无法解释的字符;先核对输入格式和工具支持范围。
|-
| 填充 || RFC 4648 的 Base16 不使用 Base64 那样的等号填充。
|}

不要把编码、加密、散列和签名当成一回事,也不要仅凭输出“看起来像文字”就认定处理正确。真实工具的限制需核对其文档和行为。

相关工具与条目

工具链接应写明对应功能。已有站内条目使用内部链接;介绍外部工具时给官方链接、运行方式与限制,不能把推广文案当使用说明。

* [[Base16]]:十六进制编码条目。
* [[ASCII编码]]:字符与数值的关系。
* [[工具和科普]]:其他工具与科普入口。


参考资料

定义、规则和边界均应有相应来源;尽量定位到规范章节。正文写 ref,文末汇总:

本例可以用规范中的测试向量复核。[3] 同一来源再次使用时不重复录入。[3]

本例可以用规范中的测试向量复核。<ref name="demo-hex">{{引文信息|标题=RFC 4648|网址=https://www.rfc-editor.org/rfc/rfc4648.html#section-10|作者=Simon Josefsson|定位=第 10 节:测试向量}}</ref>
同一来源再次使用时不重复录入。<ref name="demo-hex" />
  1. ↑ Simon Josefsson:RFC 4648,第 8 节:Base 16 Encoding
  2. ↑ Simon Josefsson:RFC 4648,第 10 节:测试向量
  3. ↑ 3.0 3.1 Simon Josefsson:RFC 4648,第 10 节:测试向量

复制整页框架 · 返回编写指南 · 全部模板说明

迷雾 Wiki
搜索迷雾 Wiki
阅读设置