Tengo la siguiente idea para un algoritmo hash:
- Toma una cadena llamada
string
. - Hash y obtén
hash
. - Inserte (¿uniformemente? ¿aleatoriamente? en un patrón basado en algún valor del hash en sí mismo? ¿algo más complicado de lo que no puedo pensar?) los caracteres de
string
enhash
y obtienenstring+hash
. - Cifre
string+hash
usandohash
como clave
En otras palabras:
encrypt(hash(string), hash(string) + string)
No tengo idea de si esto funciona, o si realmente logra algo en términos de seguridad adicional. De hecho, podría comprometer la seguridad, no lo sé.
¿Es esto algo menos reversible / menos propenso a crear colisiones / mejor de alguna manera que simplemente hash y dejarlo solo?
Todavía debería ser fácil avanzar, porque todas las entradas del usuario son de texto sin formato si lo entiendo correctamente. Pero al insertar los datos reales y luego cifrarlos, ¿no hace eso más difícil extrapolar algo útil del hash descifrado + el lío de la cadena?
¿O utilizar el hash como clave compromete los datos? O (como es probable que sea mucho más probable si esto es válidamente útil), ¿ya existe?