In Java posso creare una funzione hash bidirezionale - if I implementato con < a href="https://en.wikipedia.org/wiki/MD5"> MD5 Potrei scrivere i metodi toMD5Hash()
e fromMD5Hash
per un processo reversibile.
Inoltre, potrei utilizzare TripleDes con crittografia basata su chiave in Java per crittografare una stringa e quindi invertire nuovamente.
Ma se ho accesso al codice, allora posso ottenere l'algoritmo usato, e ho la chiave quindi posso invertirla. (Per questo motivo molti controlli di password online utilizzano un hash unidirezionale come bcrypt .)
Quindi sto cercando di capire perché un prodotto come Hashicorp Vault (per il quale il codice è open source) è "più sicuro" di quello che scrive il mio hash Java bidirezionale. Non posso semplicemente leggere il codice sorgente del Vault, ottenere la chiave e la funzione di hashing e decifrare tutti i segreti?
La mia domanda è: Cosa rende i segreti di archiviazione in Hashicorp Vault diversi dall'utilizzo di un hash bidirezionale in Java?