Trabalho em C # e MSSQL e, como seria de esperar, guardo minhas senhas salgadas e com hash.
Quando olho para o hash armazenado em uma coluna nvarchar (por exemplo, o provedor de associação aspnet pronto para uso). Sempre fiquei curioso para saber por que os valores gerados de Salt e Hash sempre parecem terminar em um ou dois sinais de igual.
Eu já vi coisas semelhantes ao trabalhar com algoritmos de criptografia, isso é coincidência ou existe uma razão para isso?
hashing
character-encoding
Liath
fonte
fonte
hash("my password")
produz a matriz[1,2,3,4,5]
e eu preciso armazenar esses valores em um banco de dados, há opções piores do que armazenar a cadeia de caracteresAQIDBAU=
(é claro, se a função hash em uso já estiver produzindo uma cadeia de caracteres, parece um pouco tolo então a Base64 a codifica. )Respostas:
Essas cadeias de hash são (geralmente?) Codificadas no formato Base64 e o sinal de igual é usado para preencher a cadeia de caracteres para tornar o comprimento (número de bytes) divisível por três. A Wikipedia explica muito bem: http://en.wikipedia.org/wiki/Base64 .
fonte
Poderia ser preenchimento de codificação Base 64?
A sequência '==' indica que o último grupo continha apenas um byte e '=' indica que continha dois bytes. O exemplo abaixo ilustra como o truncamento da entrada de toda a citação acima altera o preenchimento da saída:
http://en.wikipedia.org/wiki/Base64#Output_padding
fonte