Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Arxid: keyed, non-enumerable ID obfuscation (ARX-Feistel, no_std, spec-first)

Дата публикации: 05-08-2026 14:42:18


Sequential IDs in URLs (/users/1042, then 1043, then 1044) leak how many records you have and let anyone walk them. Hashids/Sqids fix the enumeration but aren't really keyed. The alphabet is just salt-shuffled.
arxid is a keyed reversible permutation instead: a balanced Feistel network with an ARX round function over 40 bits, mapping to a 7-char base62 code. It runs ~16x faster than the same Feistel using HMAC-SHA256 as the round function, since an ARX round is a handful of integer ops rather than a hash call.
A few Rust-specific things:
no_std capable, forbids unsafe
features std / alloc / encoding / zeroize, plus wasm behind a flag
the round count (4) comes from measuring strict avalanche, not from picking a number that felt safe
it's the reference impl for a spec-first design: a frozen spec and 61 canonical test vectors, so a port in any language validates against the same vectors and stays byte-identical
The README is blunt about what this isn't. Not encryption, not a MAC, not audited. It stops casual enumeration and that's the job. It is not access control.
Curious what people think of the API and the construction.
Repo: GitHub - lucasolopes/arxid: Keyed, reversible permutation for obfuscating sequential integer IDs. A frozen spec plus canonical vectors, so every language agrees byte-for-byte. Rust reference + TypeScript port. · GitHub
8 posts - 4 participants
Read full topic

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Sigid: a zero-dependency, no_std, three-layer unique ID generator014.6911-08-2026
2My state lib PurrGress012.6213-08-2026
3Multicalc: Scientific computing for real-time embedded systems in no_std Rust014.3610-08-2026
4Siffra - a GPUI calculator that supports dimensional analysis011.0407-08-2026
5Qhull_rayon v0.1.0010.411-08-2026
6rsloop: An Event Loop for Asyncio Written in Rust01020-04-2026
7oxyde: Type-Safe, Pydantic-Centric Async ORM05020-02-2026
8ERC-8337: Agent Memory State07.6526-07-2026
9Как отговорить себя от написания своей ФС011.6409-08-2026

Классификация: . Схожих патентов: 0. Схожих новостей: 9. Тональность: 0. Информативность: 15.47. Источник: users.rust-lang.org.