> 2) Proč SpringSecurity (zřejmě) používá při
> generování hashí hesel
> kódování UTF-8
>  Přiznám se že netuším a ani to nechci zkoumat,
> protože mi to připadá
> jako zcela správné a logické.
Mali ste pravdu. Spring pouziva UTF-8.
 
> 3) Vaše metoda nedokáže pracovat s UTF-8 nebo UTF-16
>  Konkrétně, na této řádce je špatně počet byte:
>    
> messageDigest.update(_sPassword.getBytes(_sEncoding), 0,
> _sPassword.length());
>  Metoda String.length vrací počet znaků, zatímco
> třetí parametr
> MessageDigest.update je počet byte. Tyto dvě hodnoty se
> shodují pro
> latinX, ale pro UTF bývá počet byte větší.
>  Oprava:
>    messageDigest.update(_sPassword.getBytes(_sEncoding));
>
>  Dále ještě vidím druhou chybu, menší ale o to
> záludnější: opravdu
> stačí doplňovat jen jedinou nulu na začátek? Co když
> bude celý první byte nulový?
Sorry, to bol len rychly bugfixing. Povodne som tam doplnanie nul vobec nemala, 
len som si vsimla, ze heslo, ktore som pouzivala na testovanie - Juengling1§, 
ma po hashovani len 31 a nie 32 znakov.

Dakujem za pomoc. Podarilo sa mi to rozbehat.

Radovana Straube



Odpovedet emailem