Ya hice esa pregunta en stackoverflow pero me informaron que es un poco demasiado amplio y confía más aquí. Así que déjame copiar y pegar lo que pregunté allí:
Tengo un dilema relacionado con la seguridad que no puedo resolver por mi cuenta a partir de mi conocimiento sobre la seguridad de las aplicaciones web.
Digamos que quiero crear un servicio donde el usuario pueda almacenar y VER en texto sin formato sus contraseñas para múltiples servicios. En tal caso, tenemos algunas cosas que considerar: medidas de seguridad básicas al cifrar las contraseñas almacenadas con hash, cómo proteger las contraseñas en caso de que hubieran sido robadas de la base de datos, por ejemplo, eliminando la base de datos por el atacante.
Esto significa que las contraseñas deben almacenarse encriptadas, pero es posible mostrarlas a un usuario en texto sin formato. La forma estándar de almacenar las contraseñas para la autenticación es agruparlas, por ejemplo, con bcrypt u otro método con sal agregado, y dicho cifrado no le permite descifrar las contraseñas fácilmente.
¿Es lo que quiero incluso posible lograr? ¿O hay algún otro enfoque que deba tomar en lugar de hash pero que aún sea seguro para almacenar múltiples contraseñas a múltiples servicios por un solo usuario?
Simplemente agregaré que supongamos que una contraseña única o un conjunto de contraseñas es una publicación de blog para ver en un texto sin formato solo por el autor de dicha publicación y en circunstancias específicas por administrador y moderador.
La tecnología en sí misma probablemente no sea lo más importante aquí, pero voy a realizar esta aplicación utilizando php y laravel framework.
Una cosa es almacenar y ver. Otra cosa es cómo asegurar dicha aplicación de varios tipos de secuestros de mensajes cifrados, volcados de bases de datos y ataques similares.