Cómo crear hash a partir cadena en JavaScript?

JavaScript hash de cadena : Aquí, vamos a aprender cómo crear de hash de cadena en JavaScript?

Hashing un medio de decodificación de cadenas a una cierta otra cadena de caracteres alfanuméricos, dependiendo del algoritmo de hash utilizado. La razón por la cual se hace hash es proporcionar seguridad a la cadena . Un ejemplo común es contraseñas. Cuando se registra en un sitio web de fiar y crear un ID de usuario y la contraseña class sus credenciales de acceso, su cadena de contraseña no se almacena directamente en su base de datos. Se convierte primero en un valor hash y se almacena por lo que cualquier tipo de fuga de datos no ponga en peligro su cuenta directamente. Este valor hash se genera utilizando un algoritmo hash que se escribe a cabo de tal manera que dos cadenas no generan el mismo valor hash. De hash se utiliza ampliamente en aplicaciones blockchain estos días.

vamos a ver una muy simple algoritmo de hash y aprender cómo podemos implementarlo en JavaScript.

Supongamos que tenemos una cadena “abc” . Podemos generar una serie de hash si asignamos un número a cada letra del alfabeto y de la manera más sencilla de hacerlo es utilizar la biblioteca ya existente, el código ASCII, donde cada personaje se le asigna un valor ASCII. Puesto que todas las letras del alfabeto tienen diferentes valores ASCII se puede utilizar directamente.

El algoritmo toma primero el código ASCII y genera un número único que se multiplica con. Este número único es de hash , que será diferente for cada personaje. Al final, vamos a hacer un bit a bit Y del hash actual con el hash anterior. Para empezar, vamos a tomar hash para ser 0 como el valor hash de una cadena vacía es siempre 0 (Una de las razones por las que su contraseña no puede estar en blanco!).

Echemos un vistazo en el algoritmo de ahora,

    Assign hash as 0
Iterate through the string
Take character at ith position
Obtain ASCII code as charCode
Generate Hash as Hash(2^k-1)*charCode
Assign hash as bitwise AND of hash with itself

vamos a ver que es una implementación en JavaScript.

Crearemos una función generateHash () que tendrá una cadena como parámetro y el valor hash for class de esa cadena.

function generateHash(string) {
var hash = 0;
if (string.length == 0)
return hash;
for (let i = 0; i < string.length; i++) {
var charCode = string.charCodeAt(i);
hash = ((hash << 7) - hash) + charCode;
hash = hash & hash;
}
return hash;
}
generateHash("abc");

salida

1609443

El valor de k se toma como cualquier número primo porque que garantiza un menor número de colisiones de valores hash de los dos personajes. Se trata de un algoritmo ingenuo return generar un valor hash de una cadena en JavaScript. Muchas bibliotecas de JavaScript generan un valor hash final una cadena utilizando sus algoritmos hash personalizados. Trate de tomar como k valores diferentes y ver cómo varía el resultado.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *