Screenshot je irelevantní - ukazuje jen defaultní hodnoty, neukazuje
ani ty skutečně použité u tabulky/sloupečku a neukazuje ani hodnotu
použitou pro connection (komunikaci mezi aplikací a db). MySQL je v
tomto poměrně komplikovaná.

Druhá věc je, že Spring si pravděpodobně dělá hash sám bez databáze -
tím spíš je jen očekávatelné, že používá UTF a ne latin1 (to by byl
docela bug).

Kamil Podlešák

2010/10/15 Radovana Straube <[email protected]>:
> Databaza je nastavena na latin1 (vid screenshot), ale aj tak to nevysvetluje 
> problemy so Springom. Nemyslim si, ze by Spring pouzivat na MD5 hashovanie 
> metody z SQL-ka.
>
> --- On Fri, 10/15/10, Kamil Podlesak <[email protected]> wrote:
>
>> From: Kamil Podlesak <[email protected]>
>> Subject: Re: MD5
>> To: "Java" <[email protected]>
>> Date: Friday, October 15, 2010, 1:19 PM
>> Špatná znaková sada, to je
>> evidentní na první pohled.
>>
>> Databáze používá UTF-8 (zkusil jsem si to a výsledek
>> sedí)
>>
>> Kamil Podlešák
>>
>> 2010/10/15 Radovana Straube <[email protected]>:
>> > Dobry den,
>> >
>> > pouzivam Spring Security, hesla su ulozene v databaze
>> zacryptovane s MD5. Ked sa v hesle nachadzaju znaky, ktore
>> su v ASCII tabulke do pozicie 127, vsetko funguje O.K., ale
>> akonahle niekto v pouzije v hesle znaky nad 127, MD5-kou
>> vygenerovane hashe nesedia. Samozrejme, ze mozem zakazat
>> pouzivat v heslach znaky nad 127, ale aj tak by ma zaujimalo
>> preco to nefunguje.
>> >
>> > Vypis z konfiguracie Spring Security:
>> > <authentication-manager>
>> >        <authentication-provider
>> user-service-ref="userDetailsService" >
>> >            <password-encoder hash="md5"/>
>> >        </authentication-provider>
>> >    </authentication-manager>
>> >
>> > Vypis kodu, ktorym hashujem hesla:
>> > public static String encode(String _sPassword, String
>> _sEncoding)
>> >            throws NoSuchAlgorithmException,
>> UnsupportedEncodingException {
>> >    MessageDigest messageDigest =
>> MessageDigest.getInstance("MD5");
>> >
>>  messageDigest.update(_sPassword.getBytes(_sEncoding), 0,
>>  _sPassword.length());
>> >    String hashedPass = new BigInteger(1,
>> messageDigest.digest()).toString(16);
>> >    if (hashedPass.length() < 32) {
>> >        hashedPass = "0" + hashedPass;
>> >    }
>> >    return hashedPass;
>> > }
>> >
>> > Asi by bolo riesenim zistit kde sa nachadza metoda,
>> ktoru pouziva Spring na MD5 hashovanie a pouzit priamo tu,
>> ale to sa mi bohuzial nepodarilo.
>> >
>> > Robila som zopar pokusov aj s MySQL (kodovanie latin1)
>> databazou. Ked napriklad zavolam moju Javovsku metodu
>> encode("§", "ISO-8859-1"),
>> > tak je vysledok:
>> > 6b2b98fea11e51af3043b192f719bd69
>> >
>> > ale pri zavolani
>> > SELECT md5("§");
>> > je vysledok:
>> > bd9a4c255deec8944d99e01a64c1e322
>> >
>> > Vedel by prosim niekto poradit co robim nespravne?
>> Dakujem
>> >
>> > Radovana Straube
>> >
>> >
>> >
>> >
>>
>
>
>

Odpovedet emailem