Tengo un buen conocimiento práctico de las mejores prácticas de seguridad básicas (hash de contraseñas, prevención de inyección de sql, CSRF, etc.) pero no puedo encontrar una solución para el cifrado y descifrado de caso común en PHP.
Google es de poca ayuda, ya que la mayoría de los resultados son muy criticados por ser inseguros por su diseño o simplemente desactualizados (por ejemplo, EBC) y para agregar a la confusión, la gran cantidad de bibliotecas parece ofrecer poca confianza entre sí.
Diga que tengo una cadena de texto sin formato y una clave que no cambiará y quiero poder cifrar y descifrar esa cadena a voluntad usando esa clave con el menor código posible (idealmente de una sola línea) y mientras me adhiero a la mejor práctica actual. ¿Podría alguien proporcionar un ejemplo de esto en PHP?
Un gran ejemplo de dónde sería útil esto es cuando se almacenan datos confidenciales en WordPress. La API de Opciones hace que el almacenamiento y la recuperación básicos sean realmente fáciles, pero a menudo es necesario almacenar los detalles de la tarjeta de crédito, las claves de API, etc. realmente simple de una sola línea mejoraría enormemente la situación.
Además, si pregunto en el lugar equivocado y ya existe una fuente siempre actualizada para este problema exacto, no dude en dirigirme allí.
EDITAR: la clave debe admitir una cadena arbitraria, por lo que podría usar AUTH_KEY
de WordPress si lo desea y para hacerlo simple.