@dotrino/opaque

中文文档
0.1.1发布于 2026/11/05MITES Module零依赖构建来源已验证近 30 天下载 4270

多特里诺生态系统的OPAQUE(RFC 9807):在服务器从未看到的情况下检查密码. 在CI中不透明编译到WASM.

中文使用文档
文档目录6 节
  1. 干草地穴,没有
  2. 乌苏
  3. 错误
  4. 爱爱爱爱爱爱爱爱爱爱爱爱爱爱爱爱
  5. 发展
  6. 我们的文件

@ dotrino/ 不公开

康普罗巴尔 una contraseña sin que el servidor la vea nunica# 罪人恳求爱人 # (原始内容存档于2018-10-25). con qué adivinarla desde fuera. 政务厅RFC 9807 (韩语)(中文(简体) ) 经济、社会和文化权利 多春诺麻省理工学院.

人民日报 人民日报 人民日报 人民日报 人民日报 反《公约》条款,第6段 aparato que se abre conusuario 和 contraseña (英语: (单位:千美元)dotrino-passmanager/docs/temporary-access.md) (中文(简体) ).

干草地穴,没有

  • 没有干草干草干草干草干草干草干草干草干草干草干草干草干草. 埃尔平面图 opaque-ke 4.0.1 (Meta, 审计ado por NCC Group en 2021), compilado a WASM (英语: 圣多明会 (原始内容存档于2018-10-21). en nuestro CI. Este paquete fija la house, 爱斯特·派克特·菲亚·拉 套房, 不烦恼出场.
  • 《联合提交的材料》 (单位:千美元)build/wasm-bytes.js(原始内容存档于2018-10-21) (英语). porque el mark se distribuye como {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}没有车厢 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}没有车厢 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}没有车厢.
  • 套房费雅: ristretto255 + SHA-512 + 3DH, con Argon2id a 64 MiB, 3相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 (la segunda recompación del RFC 9106; la primera, 2 GiB, no Cabe en un navegador). 昆明植物研究所. 输 埃斯克里亚省 wasm/src/lib.rs不要叛逃到自由之地: (原始内容存档于2017-03-29). combiarlos combia los registros guardados. suiteId() 洛斯诺姆布拉.

乌苏

Todo entra y selly en base64url. 中国植物物种信息数据库.

import { client, server } from '@dotrino/opaque'

// Una vez por bóveda. SECRETA.
const setup = server.createSetup()

// Registro
const r1 = client.registrationStart({ password })
const response = server.registrationResponse({ setup, request: r1.request, credentialId: 'ana' })
const r2 = client.registrationFinish({ state: r1.state, response, password, identifiers })
const record = server.registrationFinish({ upload: r2.upload })        // lo que se guarda
// r2.exportKey solo sale de la contraseña: con ella se cifran las llaves del aparato.

// Inicio de sesión
const l1 = client.loginStart({ password })
const s1 = server.loginStart({ setup, record /* o null */, request: l1.request, credentialId: 'ana', identifiers })
const l2 = client.loginFinish({ state: l1.state, response: s1.response, password, identifiers })
const s2 = server.loginFinish({ state: s1.state, finalization: l2.finalization, identifiers })
// l2.sessionKey === s2.sessionKey, y l2.exportKey === r2.exportKey
  • record: null 不存在:a respuesta es igul por fuera y falla ig. Omitirlo es 未出错 (bad-input),没有"不存在" por fecto.
  • identifiers (单位:千美元){ client, server }se atan al intercambio; si las dos puntas no pasan (英语: 洛斯·米斯摩斯(英语:los mismos), falla como un a contraseña quavocada. 中国植物物种信息数据库.

错误

OpaqueError 错误 code数字 :

code坎多语Name
login-failed反正 假说 假说 假说 宣传片
bad-input法尔塔不达多,没有自己 puede leer
protocol缩写 :
internal不堕落不堕入正轨

爱爱爱爱爱爱爱爱爱爱爱爱爱爱爱爱

  • 红花花相接 无相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相。 。 。 .
  • 奎恩领带 预备役和预备役 (法语) 普埃德·普瓦德·查克塞尼亚斯·辛·利米特(原始内容存档于2018-03-21). Cada ententio cuesta el Argon2 de arriba: medido, 无效 100分钟 (原始内容存档于2018-03-29) (英语). por intento en Node con Este WASM. 无人能及的硬件 兰皮多 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}是的 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}是的 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}是的.

发展

涅塞西塔·鲁斯特(英语:Lo fija) wasm/rust-toolchain.toml页:1 wasm-bindgen-cli 错失爱意 尔克特:

cargo install wasm-bindgen-cli --version 0.2.100 --locked
npm run build          # WASM → build/
npm test               # la API, los errores y el registro v1 fijado
npm run test:vectors   # los vectores del RFC 9807 contra opaque-ke 4.0.1

《可复制的汇编》数字 : npm run build 圣母玛利亚 que CI (英语:build/wasm.sha256· ; a5a80de4… 第0.1.0段;波克语 scripts/build.mjs 重写 (原始内容存档于2019-03-29). las rutas absolutas y el compiladoor está fijado. 公开销售 (原始内容存档于2018-10-21). este fuente.

test/fixtures/v1.json (原始内容存档于2019-01-30). es un registro guardado con la 0.1. 托达会长 领带 que abrirlo: un registro que deja de abrir deja a alguien sin entrar. 中国植物物种信息数据库.

公开 脱口秀 骗取标签 vX.Y.Z (单位:千美元).github/workflows/release.yml), Con el SBOM, la (英语) (原始内容存档于2018-03-27). Pressedencia y la huella del WASM en la lea release. 农卡 npm publish 一个马诺.

我们的文件

维基文库中相关的原始文献: Está en el wiki: https://wiki.dotrino.com/desarrollo/pilares/ 互联网档案馆的存檔,存档日期2013-12-21

版本与发布记录

@dotrino/opaque 共发布 2 个版本,首次发布于 2026/09/18;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.1latest2026/11/058 天前
0.1.02026/09/181 个月前

关于 @dotrino/opaque 的常见问题

@dotrino/opaque 是什么?

多特里诺生态系统的OPAQUE(RFC 9807):在服务器从未看到的情况下检查密码. 在CI中不透明编译到WASM.

如何安装 @dotrino/opaque?

在项目目录运行 npm install @dotrino/opaque,或使用 pnpm add / yarn add / bun add。

@dotrino/opaque 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/dotrino__opaque 是否存在。

@dotrino/opaque 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dotrino/opaque 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dotrino/opaque 可以商用吗?

@dotrino/opaque 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@dotrino/opaque 的下载量有多少?

根据 npm 官方下载统计,@dotrino/opaque 在 2026/10/13 – 2026/11/11 这 30 天内被下载 4,270 次,日均约 142 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dotrino/opaque 还在维护吗?

最新版本 0.1.1 发布于 2026/11/05(8 天前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/09/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。