¿Por qué tantas cadenas hash y cifradas terminan en un signo igual?

60

Trabajo en C # y MSSQL y, como es de esperar, almaceno mis contraseñas con sal y hash.

Cuando miro el hash almacenado en una columna nvarchar (por ejemplo, el proveedor de membresía de la caja aspnet). Siempre he tenido curiosidad de por qué los valores de Sal y Hash generados siempre parecen terminar en uno o dos signos iguales.

He visto cosas similares mientras trabajaba con algoritmos de cifrado, ¿es esta coincidencia o hay alguna razón para ello?

    
pregunta Liath 17.06.2014 - 11:15

2 respuestas

90

Estas cadenas con 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 entre tres. Wikipedia lo explica bastante bien: enlace .

    
respondido por el svenslaggare 17.06.2014 - 11:22
33

¿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:

enlace

    
respondido por el Jaydee 17.06.2014 - 11:22

Lea otras preguntas en las etiquetas

Comentarios Recientes

Incluso si parecía que la cadena estaba codificada, en realidad distingue entre mayúsculas y minúsculas, por lo que necesitamos un signo igual generosamente apropiado para expresarlo. Analicemos esto. Tenemos el valor descodificado al final: desde arriba, ¿cuántos caracteres de signo igual pueden existir? De 54, solo habrá 52 caracteres. Para obtener 64 cadenas equivalentes únicas de valores de signo igual único, el signo is (podría haber 6 ocurrencias de is here, pero generalmente la marca de signo igual igual... Lee mas