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