字节与十六进制文本
本课属于 Coddy Node.js 学习旅程的“身份验证与安全”单元。第 1 课,共 24 课。
加密函数处理的是字节。一个字节是 0 到 255 之间的数字。UTF-8 将文本编码为字节,而 Buffer 会在 Node 中存储这些字节。十六进制简称 hex,它用数字 0 到 9 和字母 a 到 f 将每个字节表示为两个字符。这样就能方便地将字节存储为文本。
const bytes = Buffer.from('Ok', 'utf8');
bytes.toString('hex'); // '4f6b'
Buffer.from('4f6b', 'hex').toString('utf8'); // 'Ok'字母 O 对应的字节用十进制表示是 79,用十六进制表示则写作 4f。
这种转换是可逆的:它改变的是表示形式,而不是信息。将密码编码为十六进制并不能保护密码。验证密码哈希时,会重新计算派生值,而不是对其解码。这里的输入是普通文本,练习会返回它们的十六进制表示,让你可以比较这两种形式。
挑战
简单这是一个小型练习项目。项目已提供配置,你只需编辑 exercise.js。
返回一个 hex 字段,其中包含将提供的文本编码为 UTF-8 字节后再转换成十六进制的结果。向 /result 发送 POST 请求,内容为 {"text":"Hi"},会返回 {"hex":"4869"}。文本 Ada 会返回 416461。
亲手试试
export function exercise({ text }) {
return { hex: text };
}
身份验证与安全中的所有课
自己练习: Express 在线编辑器