Sé que la mayoría de las funciones hash de hoy en día usan la codificación Base64 para sus funciones, lo que resulta en hashes que usan a-Z y 0-9, y, a veces, otros caracteres especiales. Esto da como resultado valores posibles de 62-76ish para cada carácter, por lo que si tu hash termina siendo de 70 caracteres, hay 70 ^ 62 combinaciones posibles.
Pero, ¿y si hubiera una función de hash diseñada para aprovechar el UTF-8? De lo que entiendo hay aproximadamente 100,000 valores posibles para cada personaje. Esto significa, cerca de lo que puedo decir, que habría 70 ^ 100,000 valores posibles, lo cual es mucho. Parece que no podrías hacer una tabla de arco iris de eso.
También, sé que la velocidad es muy importante en las funciones de hash. ¿Sería esto inherentemente más lento que una función de hashing Base64?
Sé que los "bits de entropía" tienen mucho que ver con la seguridad de una contraseña. ¿Esto mejora de alguna manera esos bits entropiados? Estoy bastante confundido acerca de la entropía, para ser honesto.
Tenga en cuenta que no estoy hablando de combinación una función existente con UTF8. Me pregunto si se creó una nueva función de hash criptográfica para aprovechar el conjunto de caracteres más grande de UTF-8, ¿sería mejor (al menos en teoría) que las funciones existentes?
De mi lectura parece haber algunos problemas con bits flotando alrededor y causando confusión. ¿Sería posible solucionar este problema, o es la razón por la que no puede el hash con éxito de UTF-8 para las contraseñas, ya que el riesgo de colisión aumenta de manera dramática e impredecible?