Si las contraseñas son x e y, entonces un hash simple podría almacenarse como x * y. Entonces, si x e y son números primos muy grandes, se necesitaría mucha potencia informática para encontrar los x e y originales. Pero, ¿no puedo encontrar 2 números cuyo producto sea x * y aún ingresar a un sistema ya que ese número es el hash?
Está confundiendo el cifrado de clave pública RSA con un hash criptográfico aquí, creo.
Una función criptográfica de hash está diseñada para ser unidireccional : es relativamente fácil calcular el hash en función de una entrada pero imposible calcular la entrada desde el hash. De hecho, por su naturaleza, hay infinitas entradas diferentes que producen el mismo valor hash.
- ¿Qué deben leer todos los libros como Embedded / System / Kernel Engineer y por qué? ¿Incluyendo estructura de datos y algoritmos?
- ¿Cuál es la forma más rápida y eficiente de hacer una sustitución / sustitución de cadenas dentro de una cadena grande con JavaScript?
- Cómo resolver esta relación de recurrencia: (bn + 1) = 6 * ((bn)) ^ 7, b (0) = 36
- ¿Cuáles son los mayores problemas no resueltos en algoritmos?
- ¿Cuál es el algoritmo de aprendizaje automático requerido para el asistente virtual?
Para archivar esto, una función hash criptográfica utiliza algoritmos completamente diferentes que el criptosistema RSA. Tomemos, por ejemplo, la función SHA3 (que no está hecha para contraseñas en particular, solo una función hash general):
SHA-3 – Wikipedia
En su base tiene una construcción de esponja, no una multiplicación de números primos.
Para que su esquema funcione, tendría que conocer el valor hash de la contraseña en primer lugar, es decir, tener acceso a la base de datos y esperar que el propietario no haya salado las contraseñas ni haya utilizado múltiples rondas de hash. Si tiene este nivel de acceso, de todos modos no queda mucho por ganar.
Tenga en cuenta que es posible crear colisiones hash deliberadas para archivos utilizando el hash MD5. Esto lleva varias horas en una PC de escritorio. También es posible colisionar el algoritmo SHA1, pero lleva semanas en una supercomputadora. Ambos algoritmos han quedado en desuso durante años debido a eso (SHA1 mucho antes de que Google anunciara su primera colisión en el mundo real). Los hashes modernos tardarían millones o incluso miles de millones de años en romperse.