IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – Šifrovanie v Jave pomocou algoritmu AES 256

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Hartrik
Tvůrce
Avatar
Hartrik:25.1.2013 18:08

Ahoj, zjistil jsem že i když zadám salt a heslo stejné, tak je výsledek pokaždé jiný. Neví někdo co s tím?

 
Odpovedať
25.1.2013 18:08
Avatar
Fugiczek
Tvůrce
Avatar
Odpovedá na Hartrik
Fugiczek:25.1.2013 18:20

A IV sis někam uložil nebo jsi ho vygeneroval znova? Tenhle kód se jen na ukázku a spíš na jedno použití :D Pokud chceš v budoucnu zašifrované věci dešifrovat měl by jsi znát heslo, salt a iv.

 
Odpovedať
25.1.2013 18:20
Avatar
Karel Šíma
Člen
Avatar
Odpovedá na Hartrik
Karel Šíma:25.1.2013 18:24

Já jsem se také pokoušel šifrovat ale pomocí MD5 ... bohužel jsem narazil na to samé ... také jsem nevěděl jak to že když při vytvoření usera heslo zašifruji a pak když v průběhu relace přihlašování převedu zadané heslo na hash tak jsou tyto hashe rozdílné ... Ale já jsem využíval jiného nástroje ... myslím že je to tím že se musí nastavit shodně to šifrování ale nevím jak

Používal jsem toto, a pokuď jsem správně pochopil by měl zváldat i AES nebo SSH :

final MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(string.getBytes(Charset.forName("UTF8")));
final byte[] resultByte = messageDigest.digest();
final String result = new String(Hex.encodeHex(resultByte));

Ale určitě mě zkritizujete že jsem to nepochopil ... ale doufám že mi někdo dá nějaký dobrý směr :)

Odpovedať
25.1.2013 18:24
Nejvíc času promarníme tím, že usilujeme získat čas. - John Steinbeck
Avatar
Hartrik
Tvůrce
Avatar
Hartrik:25.1.2013 18:49

Dobře zkusim to s tim IV snad už to půjde

 
Odpovedať
25.1.2013 18:49
Avatar
Fugiczek
Tvůrce
Avatar
Odpovedá na Hartrik
Fugiczek:25.1.2013 19:32

Tak jsem si s tím chvíli hrál a prostě když se vytvoří nová instance té třídy tak to nefunguje to dešifrování. Nevím proč, na to jsem moc krátkej. Jinak AES je asymetrický takže výsledek bude pokaždé jiný a to IV je blbost ukládat :-) Teoreticky by stačilo na dešifrování znát jen klíč, jenže ono to všechno funguje v jedné instanci, jakmile je další tak je to problém, třeba s tím poradí někdo jiný :-)

 
Odpovedať
25.1.2013 19:32
Avatar
Karel Šíma
Člen
Avatar
Odpovedá na Fugiczek
Karel Šíma:25.1.2013 19:49

No a proč řešíte dešifrování, tedy pokuď se nemejlím, není snažší to zašifrovat a zašifrované data porovnávat ? Pokuď se nemýlím takhle se běžně provádí autentizace na webovkách? na serveru je v DB heslo zahešované a PHP jen porovnává dva heše ne ? ale je potřeba aby ty dva heše byli stejné, což by měli, ale problém je asi právě v tom šifrovacím klíči ... bohužel toho se mi nepodařilo docílit i když nevím proč ...

Odpovedať
25.1.2013 19:49
Nejvíc času promarníme tím, že usilujeme získat čas. - John Steinbeck
Avatar
Fugiczek
Tvůrce
Avatar
Odpovedá na Karel Šíma
Fugiczek:25.1.2013 19:51

Jenže u tady tohoto je výsledek šifrování pokaždé jiný, protože šifra je asymetrická, porovnávání zde nepomůže :-)

 
Odpovedať
25.1.2013 19:51
Avatar
Karel Šíma
Člen
Avatar
Odpovedá na Fugiczek
Karel Šíma:25.1.2013 20:30

Advanced Encryption Standard (AES) je symetrická bloková šifra ...
By wiki, a to samé englisch wiki ... pokuď vím, tak jestli je symetrická nebo nesymetrická se rozhoduje podle toho jak se šifruje a dešifruje u symetrické je to stejný klíč pro šifrování i dešifrování ne ... u asymetrické je to jeden klíč pro zašifrování a druhý pro rozšifrování a opačně použít nejdou ...

pokuď snad ale šifruju stejným klíčem tak by měl být výsledek stejný ne u symetrické šifry ?
Jelikož pokuď oba zašifruju jiným klíčem ... tak na straně serveru budu mít problém s dešifrací ... budu si muset poslat klíč a to je po síti trošku nebezpečné ne ? jako nejsem žádný odborník, jen uvažuji ... a vztahuju to ke svému problému ... kdy jsem chtěl posílat přes síť zašifrované heslo na na straně TCP serveru jen porovnat s hešem z databáze ...

a ještě jedna věc MD5 je tedy taky asymetric ?

Odpovedať
25.1.2013 20:30
Nejvíc času promarníme tím, že usilujeme získat čas. - John Steinbeck
Avatar
Fugiczek
Tvůrce
Avatar
Odpovedá na Karel Šíma
Fugiczek:25.1.2013 20:48

Jo máš pravdu, jsem si to špatně odvodil z toho že pokaždé to háže jinej výsledek. Možná jsem jen špatně napsal ukázku, v kryptografii se moc nevyznám. MD5 je 100% symetrická :-D Prostě je to taková ukázka na jedno použití, když někoho napadne jak to vyřešit, aby to fungovalo i v nove instanci, budu jen rád :-)

 
Odpovedať
25.1.2013 20:48
Avatar
Karel Šíma
Člen
Avatar
Odpovedá na Fugiczek
Karel Šíma:25.1.2013 21:05

Já jsem se setkal se stejným problémem ... dělal jsem povinně jako semestrálku takovou apku, jednoduchou simulaci bankomatu, mělo to být konzolově :D ... trošku jsem si to ztížil :D udělal jsem tu simulaci graficky klient-server spojený přes socekt ... usery jsem házel do XML na straně serveu ... a přihlašoval jsem se z bankomatu pomocí ID karty a pinu ... heslo jsem chtěl šifrovat pomocí MD5 ... asi pět hodin jsem seděl na programe :D jelikož mě nešlo se přihlásit ... :D pak když jsem si do konzole nechal vypsat heše bylo mi jasné proč ... heše byli různé ... takže jsem to nechal nešifrované :D i tak to splnilo až moc nad míru zadání :D

tuším že problém byl a je v tom že se to šifruje různýma klíčema v druhém případě, že se to zašifruje jedním a jiným se to snaží dešifrovat ... ale chtělo by to názor někoho zkušenějšího :) já jsem jen takovej malej břídil :D

Odpovedať
25.1.2013 21:05
Nejvíc času promarníme tím, že usilujeme získat čas. - John Steinbeck
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!