-
用一个清晰的 secret.Do 封装把密码处理函数放进机密边界,讲明输入所有权、结果复制、实验开关、panic 与平台限制。
-
runtime/secret.Do 通过编译器与运行时协作,减少机密数据在寄存器、栈和堆上的残留,但它不把普通优化结果变成语言规范保证。本文梳理两者的职责边界、返回值设计和兼容限制。
-
runtime/secret.Do 可以让 Go 在机密计算返回前清除相关寄存器与栈,并在堆对象变得不可达后交给垃圾回收器处理。本文用最小示例说明实验开关、平台限制、全局变量、panic 和 Goexit 等使用边界。
-
Go 迁移到 ML-KEM 时,不要把后量子算法简单替换或直接拼接共享秘密。本文以 crypto/mlkem 和传统 ECDH 为例,说明协商、上下文绑定、HKDF 派生与失败即拒绝的组合方式。
-
Go 的 crypto/mlkem.Decapsulate 只有在密文长度不正确时返回错误;长度正确但内容无效时会得到不匹配的共享密钥。本文给出错误传播、协议确认和日志脱敏的实用写法。
-
Go 的 crypto/mlkem 把 ML-KEM 密钥分成私有的 DecapsulationKey 和公开的 EncapsulationKey。本文说明 GenerateKey、Bytes、New*Key 的对应关系,并整理 768/1024 参数集的序列化长度与工程基线。
-
Go 的 crypto/hpke 用 aad 把租户、版本和消息序号等公开字段绑定到密文认证范围。本文区分 info 与 aad,给出 Sender.Seal/Recipient.Open 的实现方式,并说明上下文计数器、消息顺序和重放处理的边界。
-
Go 1.26 起标准库提供 crypto/hpke,但 KEM、KDF、AEAD 不是可以任意拼接的三个下拉框。本文从兼容性、后量子迁移、硬件环境和应用用途出发,给出 DHKEM、ML-KEM、混合 KEM、HKDF、SHAKE、AES-GCM 与 ChaCha20-Poly1305 的选择思路,并用 Seal/Open 示例固定一套可复查的配置。
-
Go 1.26 的 crypto/hpke 同时提供一次性 Seal/Open 与有状态 Sender/Recipient。本文用连续消息流程说明 enc、info、AAD、nonce 计数器和消息顺序的复用边界,帮助你选对上下文生命周期。
-
围绕 Go net/url 的 URL.OmitHost 字段,说明空 authority 的 String 序列化、Path 双斜杠保护、Opaque URL 区别和调用方兼容策略,给出带中文注释的最小示例。
-
Go 的 URL 查询参数同时存在原始字符串和解码后的值。本文用 net/url 拆开 RawQuery、Query 与 ParseQuery 的差异,处理重复键、加号、分号和异常百分号,并给出适合签名、缓存、审计和业务筛选的选择方式。
-
Go 的 net/url 会把路径解码后放入 Path,RawPath 只是可选的编码提示。本文用转义斜杠示例说明 EscapedPath 何时保留 RawPath,以及手动构造 URL 时如何避免提示失效。
-
Go 用 os/exec 启动外部命令时,Cmd.Dir 可以固定子进程的工作目录,让命令稳定解析相对配置、输入和输出路径。本文从路径归属、相对可执行文件、Env/PWD 和启动错误几个证据入手,给出可直接改造的写法。
-
Go 的 exec.CommandContext 默认会在上下文超时后调用 Cmd.Cancel 并 Kill 子进程,但生产任务常需要更温和、可观测的退出策略。本文说明如何设计自定义 Cancel,处理 os.ErrProcessDone、WaitDelay、管道收尾和错误归因。
-
bufio.Scanner 默认按换行切分,输入中的零字节通常会作为普通字节保留。本文用小样例排查默认边界、自定义 NUL 分隔和超长 token 限制,并给出 Scanner 与 Reader 的选择建议。