En Java puedo crear una función Hash bidireccional, si implementado con < a href="https://en.wikipedia.org/wiki/MD5"> MD5 Podría escribir los métodos toMD5Hash()
y fromMD5Hash
para un proceso reversible.
Más allá de eso, podría usar TripleDes con cifrado basado en clave en Java para cifrar un String y luego revertirlo nuevamente.
Pero si tengo acceso al código, entonces puedo usar el algoritmo, y tengo la clave, entonces puedo revertirlo. (Por este motivo, muchas de las comprobaciones de contraseñas en línea utilizan un hash unidireccional como bcrypt .)
Así que estoy tratando de averiguar por qué un producto como Hashicorp Vault (para el cual el código es de código abierto) es "más seguro" que escribir mi propio hash Java de dos vías. ¿No puedo leer el código fuente de Vault, obtener la clave y la función de hashing y descifrar todos los secretos?
Mi pregunta es: ¿Por qué el almacenamiento de secretos en Hashicorp Vault es diferente a usar un hash bidireccional en Java?