SuperAPI AI 工具集

altcha

编程与开发

查看项目

更新于 10-16 00:24

技能介绍

用途:Altcha 是 ALTCHA 工作量证明(PoW v2)协议的官方 Rust 库(crate 名 altcha,v0.1.0+,MIT 许可),用于为 Web 应用、表单和 API 提供加密挑战-响应验证,抵御机器人与垃圾提交,不依赖会损害体验的 CAPTCHA。它与官方 ALTCHA JavaScript 组件线级兼容,Rust 后端生成的挑战可由任意 ALTCHA JS 前端组件求解。

主要能力:提供 create_challenge(生成挑战)、solve_challenge(求解计数器)、verify_solution(验证提交)、sign_challenge、verify_server_signature(验证 ALTCHA Sentinel 载荷)、verify_fields_hash(表单字段完整性)、parse_verification_data 等函数,以及 Error/Result、HmacAlgorithm、各类 Options 与数据结构。支持 PBKDF2/SHA-256/384/512、迭代 SHA-256/384/512(默认可用),以及需开启特性标志的 Argon2id 与 scrypt。所有类型以 camelCase JSON 序列化,与 JS 库字段名一致。

使用方式:在 Cargo.toml 添加 altcha = "0",按需启用 features = ["argon2", "scrypt"]。基本流程为服务端 create_challenge 生成并签名挑战,客户端求解,服务端 verify_solution 验证。创建挑战时应设置 hmac_signature_secret,验证时使用相同密钥。支持 expires_at 过期时间、确定性模式(hmac_key_signature_secret 加速验证)、Sentinel 服务端签名验证与字段哈希校验。

适用场景:Rust 后端(如 Axum、Actix)的表单与 API 防机器人、与 ALTCHA JS 组件配合的前后端分离应用。

限制:所有函数为同步且 CPU 密集,异步框架中需用 tokio::task::spawn_blocking 包裹求解调用;scrypt 的 cost 必须为 2 的幂;Argon2id 必须提供 memory_cost;key_prefix 越长求解越慢。资料未提供具体收费、价格与平台信息。