P-01
cryptoKit
Aplicación de escritorio en Java para cifrar, descifrar, resumir e asinar con 44 algoritmos, de César e Enigma ao ML-KEM poscuántico, e unha web que ensina a historia e as matemáticas da criptografía.
O meu proxecto máis antigo (2017), reescrito na súa versión 2.0 (2026). A aplicación Java Swing, con tema claro e escuro e en inglés e español, reúne cifrados clásicos, codificacións, hashes, HMAC, hash de contrasinais (Argon2id, scrypt, bcrypt), cifrado simétrico autenticado (AES-GCM, ChaCha20-Poly1305), clave pública (RSA, X25519) e os algoritmos poscuánticos ML-KEM e ML-DSA; o mesmo jar é tamén unha ferramenta de liña de comandos. Acompáñaa un portal con dez capítulos de historia e matemáticas, de César aos retículos, con teoremas e figuras interactivas que executan os algoritmos reais no navegador.
Decisións clave
- Cada algoritmo leva unha etiqueta de seguridade (recomendado, herdado, roto…) e unha ligazón «Como funciona» ao seu capítulo do portal.
- Valores seguros por defecto: IV e nonces aleatorios, modos autenticados que rexeitan datos manipulados e comparacións en tempo constante.
- 89 probas con vectores oficiais (NIST, RFC) e con textos cifrados pola versión 1.0, que seguen descifrándose.
- Publicación con GitHub Actions: o jar e paquetes portables para Windows, macOS e Linux co seu propio Java; o portal, en GitHub Pages.
- Java 21
- Swing
- FlatLaf
- Bouncy Castle
- Maven
- JavaScript
- Python
- GitHub Actions
- Java 100%