Trabajo en C # y MSSQL y, como era de esperar, guardo mis contraseñas saladas y picadas.
Cuando miro el hash almacenado en una columna nvarchar (por ejemplo, el proveedor de membresía aspnet listo para usar). Siempre he tenido curiosidad de por qué los valores generados de Salt y Hash siempre parecen terminar en uno o dos signos iguales.
He visto cosas similares mientras trabajaba con algoritmos de cifrado, ¿es una coincidencia o hay una razón para ello?
hashing
character-encoding
Liath
fuente
fuente
hash("my password")
produce la matriz[1,2,3,4,5]
y necesito almacenar esos valores en una base de datos, hay peores opciones que almacenar la cadenaAQIDBAU=
(por supuesto, si la función hash en uso ya está produciendo una cadena, parece un poco tonto codificarla con Base64. )Respuestas:
Estas cadenas hash están codificadas (¿generalmente?) En el formato Base64 y el signo igual se usa para rellenar la cadena para hacer que la longitud (número de bytes) sea divisible por tres. Wikipedia lo explica bastante bien: http://en.wikipedia.org/wiki/Base64 .
fuente
¿Podría ser el relleno de codificación Base 64?
La secuencia '==' indica que el último grupo contenía solo un byte, y '=' indica que contenía dos bytes. El siguiente ejemplo ilustra cómo truncar la entrada de la totalidad de la cita anterior cambia el relleno de salida:
http://en.wikipedia.org/wiki/Base64#Output_padding
fuente