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