Repositorio:
https://github.com/AlfonsoOrozcoAguilarnoNDA/vibeCoding_6_notas_aes/
He tenido en ocasiones anteriores problemas de tener que manejar informacion confidencial y cifrada al mismo tiempo. Desde 2000 mas o menos hice un sistema aspx que guardaba en una serie de archivos, seis textos cifrados con el estandard RIJDAEL, que ahora es AES.
Por lo mismo, creo que es un buen ejercicio logico reproducir lo mismo en php 8.x con llm online. La que me interesa mas de este momento es minimax por sus resultados visuales. Este sería el prompt.
Prompt Sugerido para la IA
Rol: Actúa como un Senior Full-Stack Developer experto en PHP y Seguridad.
Objetivo: Crear una Single-File Web App (un solo archivo PHP) que funcione como un “Vault” de notas de texto cifradas.
Requisitos Técnicos:
Frontend: Php 8.x Bootstrap 4.6.x (CDN), Font Awesome 5.15.4, y jQuery (para los modales).
Seguridad: Uso de la extensión
opensslde PHP para cifrado AES-256-CBC.Funcionalidad y Flujo:
Login Inicial: Pantalla de inicio centrada que pida usuario
adminy contraseña. El acceso se permite si el hash de la contraseña coincide con el de la palabra “vibekoder”.
- Para el login, usa
password_verifycontra un hash pre-generado de ‘vibekoder’ para evitar guardar la palabra en texto plano dentro del código. Para el AES, asegúrate de concatenar el IV al inicio del archivo guardado para poder recuperarlo al descifrar.“
Interfaz Principal:
Navbar fija con 3 opciones de menú, un enlace externo y un botón de “Salir” (cerrar sesión). Tambien un footer, ambos fijos.
Un Jumbotron de bienvenida.
- Identificarte como modelo en la barra superior de navegacion, y poner ip y version de php en el footer.
Grid de 6 tarjetas (Cards) que representen los archivos
nota1.aeshastanota6.aes.Gestión de Archivos:
Al cargar, debe verificar si los archivos existen y si el directorio tiene permisos de escritura. Si no existen, crearlos vacíos (máx 4096 bytes).
Cada nota se muestra inicialmente como texto cifrado (o un placeholder).
Acciones por Nota:
Botón “Leer/Editar”: Abre un Modal que pide una “Clave de Cifrado” (diferente a la de login). Al ingresarla, descifra el contenido del archivo
.aescorrespondiente y lo muestra en untextarea.Botón “Grabar”: Cifra el contenido del
textareacon la clave proporcionada y lo guarda en el disco.Botón “Copiar”: Botón rápido para copiar el texto descifrado al portapapeles.
Restricciones de Código:
Todo debe estar contenido en un único archivo PHP 8.x.
Manejar el cifrado con una función que incluya un
IV(Initialization Vector) para seguridad real.Diseño limpio y profesional (Vibecoding style).
FIN DE PROMPT
Literalmente :
- Mistral le chat ni se puede copiar el chat
- Grok,
- gemini,
- kimi, no entran porque hay eerrores de hash en una u otra forma.
- Minimax es el que se ve mejor, pero puso de password password y no el que dije .
- Kimi entra pero es confuso.y entra con password, no con el hash que dijimos.
- copilot inventa hash y tampcoo entra
- deepseek si entra con vibekoder correcta y detecta problemas del directorio se identifica con gpt-4 lo cual me hace dudar que hara con contraseñas. Descalificado por deshonesto.
- qwen3.6 sientra con clave correcta y se ve impecable pero no avisa que no hay derecho de escritura. muy buena presentacion. Ganador al momento. No pruebo todavia como guarda los datos.
- claude si entra y avisa del error pero se ve muy raro. no lo pruebo porque hasta daño hace a la vista. En un lugar sin luz o un celular no funcionaria. Pero si entra que ya es mas que los demas, lo cual hay ventaja de qwen claude y deepseek aunque deepseek este descalificado.
- cohere se niega a entrar proque nota que no hay permisos de escritura. eso es bueno y malo. 10 por honesto pero ya no me puedo ver mis archivos si existen. descalificado por empate de honestidad contra perder la logica de sacar si alguien alteraron permisos.
-
Cohere se comportó como un Auditor Riguroso, pero sin criterio de Arquitecto. Detectar la falta de permisos es un signo de honestidad técnica (10 en integridad), pero bloquear el acceso de lectura a archivos existentes por un error de escritura es una falla de lógica de negocio catastrófica. De nada sirve la honestidad si el sistema te deja ciego ante tus propios datos.
-
Conclusiones:
Desierto.
A nivel real, solo Claude y qwen permitieron entrar. Qwen mejor interface. La pantalla de inicio de grok se ve bien. Cohere no actuo mal.
- Minimax tuvo unainterface muy buena, como yo esperaba.
Ninguno me dio resultado. Probablemente la proxima semana se hace prueba en una ronda 2 usando base de datos. Quiza probare con gemini tambien y reformular el prompt.
En el futuro en alguna semana proxima :
- Claude
- Cohere
- Qwen
- Gemini
- Grok
- Minimax
Clausulas a Considerar:
-
Strict Typing: Exigir
declare(strict_types=1);. Eso separa a los modelos que escriben código al aire de los que validan tipos. -
PDO Error Mode: Obligar a usar
PDO::ERRMODE_EXCEPTION. Veremos quién tiene el valor de manejar los errores de conexión de forma honesta (como Cohere) pero útil (como Qwen). -
Atomicidad: Pedir que las actualizaciones de las notas sean transaccionales. Si el cifrado falla, el
COMMITno debe ocurrir.
Repositorio:
https://github.com/AlfonsoOrozcoAguilarnoNDA/vibeCoding_6_notas_aes/
Pantalla Interna Minimax :
