Files
NightSpire/web-next
Inna 6e4a123dde El token de seguridad son 6 letras al azar, no base64url sesgado
El token se generaba con `randomBytes(4).toString('base64url').slice(0, 6)`,
portado tal cual del Django original (`secrets.token_urlsafe(4)[:6]`), y tenía
dos taras para un código que se lee y se teclea desde un correo:

- Metía `-` y `_`.
- 4 bytes son 32 bits, pero 6 caracteres base64 codifican 36: al último solo
  le llegaban 2 bits reales, así que SIEMPRE terminaba en A, Q, g o w
  (comprobado sobre 20.000 tokens: 4 valores distintos en esa posición).

Ahora son 6 letras A-Z/a-z uniformes, con muestreo por rechazo porque 256 no es
múltiplo de 52 y `byte % 52` favorecería a las primeras letras. Verificado con
300.000 tokens: todos casan /^[A-Za-z]{6}$/, las 52 letras aparecen en la última
posición y la desviación por letra se queda en el 1,4% (ruido).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 17:11:22 +00:00
..

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.