Kriptografija u Javi

poruka: 12
|
čitano: 5.853
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
Kriptografija u Javi

Pozdrav kolege forumaši. Evo imam jedno pitanje glede kriptografije u Javi, dakle trebaju mi dvije aplikacije (jednostavnosti radi), jedna koja bi kriptirala/dekriptirala DES/AES (svejedno) algoritmom, te jedna koja bi kriptirala/dekriptirala RSA algoritmom, koristeći ugrađeni API i Javine biblioteke. E sad, njub sam u Javi, a pogotovo u OOP-u, pa bi mi trebala vaša pomoć. Najradije bi ja to napravio u Swingu, sa dva fielda, jedan za unos nekog stringa, drugi koji bi dao rezultate, te jedan button koji bi pokrenuo to računanje. Izlaz bi bio ovakav nekakav:

 

Text [Byte Format] : 3h4k2433jlk // ovo sam bezveze natukao bajtove
Text : Neki tekstic
Text Encryted : 432jlk432 // isto bezveze
Text Decryted : Neki tekstic

Radim u Netbeans IDE-u. Pa ako bi me mogli usmjeriti kako da to sklepam, ne treba bit nešto napredno, ulaz-obrada-izlaz.
2 fielda, jedan gumb. Molim, pomoć, bilo kakvu.

Hvala

http://3.141592653589793238462643383279502884197169399375105820974944592.com/index314.html
Poruka je uređivana zadnji put pon 3.5.2010 21:43 (1domagoj1).
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Kriptografija u Javi

Evo ti primjeri pa pokusaj ih iskoristi u svojoj aplikaciji.

 

http://www.java2s.com/Code/Java/Security/DES.htm

http://www.java2s.com/Code/Java/Security/EncryptionanddecryptionwithAESECBPKCS7Padding.htm

http://www.java2s.com/Tutorial/Java/0490__Security/BasicRSAexample.htm

 

Ukoliko ne uspijes sam to rijesiti javi mi se na PP da nesto iskombinirano.

17 godina
neaktivan
offline
Kriptografija u Javi

Imam jedan problem (već sam reko, njub sam u Javi). Stvar je ovakva, napravio sam button JButton, JTextField (tempText) te JTextArea (outputText). Želim ono što upišem u JTextField kad kliknem gumb prikazati u JTextArea, ali na više načina, dakle kak sam već prije primjer napravio:

 

Text [Byte Format] : 3h4k2433jlk
Text : Neki tekstic

 

E sad, imam ovaj kod:

 

String text = tempText.getText();

outputText.setText("Text : " + new String(text));

 

I to fino šljaka, ja nešto upišem, stisnem gumb i to se pojavi u JTextArea. Ali kak da ga natjeram da ispiše i druge oblike tog teksta koji sam uhvatio? Ako dopišem još jedan outputText.setText("Text : " + new String(text)); njega mi ne ispiše, samo jednoga ispiše. Ako me kužite. Pomoć

 

EDIT: Nema veze, skužio. Bemu, baš sam glup

http://3.141592653589793238462643383279502884197169399375105820974944592.com/index314.html
Poruka je uređivana zadnji put uto 4.5.2010 20:35 (1domagoj1).
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Kriptografija u Javi

koristi appent metodu

 

outputTexr.append("Text: " +text);

17 godina
neaktivan
offline
Kriptografija u Javi

Imam još jedno pitanje. Koji event moram dodati i čemu (vjerojatno Button-u) da kad završim sa unosom i kad pritisnem enter da mi se pokrene kriptiranje (cijeli kod sam strpal u Button, a event je ActionPerformed, trenutno).

 

Evo i koda, jel to valja išta, šta bi trebalo ispraviti, popraviti i sl:

    try {
        KeyGenerator keygenerator = KeyGenerator.getInstance("DES");
        SecretKey myDesKey = keygenerator.generateKey();

        Cipher desCipher;

        // napravi sifru
        desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");

        // Inicijaliziraj sifru za kriptiranje
        desCipher.init(Cipher.ENCRYPT_MODE, myDesKey);

        String text = tempText.getText();
        byte[] text1 = text.getBytes();
       
        outputText.setText("Text : " + new String(text) + "\nText [bytes] : " + text1);

        // Kriptiraj tekst
        byte[] textEncrypted = desCipher.doFinal(text1);

        outputText.append("\nEncrypted text: " +textEncrypted);

        // Inicijaliziraj istu sifru za dekriptiranje
        desCipher.init(Cipher.DECRYPT_MODE, myDesKey);

        // Dekriptiraj tekst
        byte[] textDecrypted = desCipher.doFinal(textEncrypted);

        outputText.append("\nDecrypted text: " + new String(textDecrypted));

        }catch(NoSuchAlgorithmException e){
          e.printStackTrace();
        }catch(NoSuchPaddingException e){
          e.printStackTrace();
        }catch(InvalidKeyException e){
          e.printStackTrace();
        }catch(IllegalBlockSizeException e){
                        e.printStackTrace();
        }catch(BadPaddingException e){
                        e.printStackTrace();
        }

 

Hvala

http://3.141592653589793238462643383279502884197169399375105820974944592.com/index314.html
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Kriptografija u Javi

Nisam gledao(analizirao) kod koji si stavio ali evo opcenito kako da pritiskom na gumb odradi neki posao.

 

    JButton button = new JButton("Gumb");
       button.addActionListener(new ActionListener() {
         
          @Override
          public void actionPerformed(ActionEvent arg0) {
            
             zadatak koji se treba obaviti i pozivanje metode
            
          }
       });

16 godina
neaktivan
offline
RE: Kriptografija u Javi

da li mi moze neko pomoci oko jave, kako da koristim html kod u javi?

17 godina
neaktivan
offline
RE: Kriptografija u Javi
cristaln kaže...

da li mi moze neko pomoci oko jave, kako da koristim html kod u javi?

 

Malo preciznije postavi pitanje. Za sto bi koristio html?

17 godina
neaktivan
offline
Kriptografija u Javi

Pozdrav, opet ja. Treba mi pomoć ako netko zna u čemu je problem i šta da sredim u kodu. Naime, ja kad pokrenem svoj program, dobim ovaj output:

 

Text: neki tekst

Text [bytes]: [B@4321

Text [encrypted]: [B@5554532

Text [decrypted]: neki tekst

 

Problem je u tome šta dobivam takav output u drugom i trećem retku, kolko sam skužio to su adrese di je pohranjen taj string. Šta da napravim u kodu da mi taj tekst u bajtovima (npr. u heksadekadskom formatu) baš i ispiše kao bajtove, a ne mem. lokaciju? Isto vrijedi i za kriptirani tekst, on pokazuje tu neku mem. lokaciju, umjesto nekih žblj bajtova. Molim pomoć, evo kod je ispod:

 

try {
        KeyGenerator keygenerator = KeyGenerator.getInstance("AES");
        SecretKey mojAesKey = keygenerator.generateKey();

        Cipher aesCipher;

        // Napravi sifru
        aesCipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

        // Inicijaliziraj sifru za kriptiranje
        aesCipher.init(Cipher.ENCRYPT_MODE, mojAesKey);

        String text = tempText.getText();
        byte[] text1 = text.getBytes();
       
        outputText.setText("Text : " + new String(text) + "\nText [bytes] : " + text1);

        // Kriptiraj tekst
        byte[] textEncrypted = aesCipher.doFinal(text1);

        outputText.append("\nEncrypted text: " +textEncrypted);

        // Inicijaliziraj istu sifru za dekriptiranje
        aesCipher.init(Cipher.DECRYPT_MODE, mojAesKey);

        // Dekriptiraj tekst
        byte[] textDecrypted = aesCipher.doFinal(textEncrypted);

        outputText.append("\nDecrypted text: " + new String(textDecrypted));

        }catch(NoSuchAlgorithmException e){
          e.printStackTrace();
        }catch(NoSuchPaddingException e){
          e.printStackTrace();
        }catch(InvalidKeyException e){
          e.printStackTrace();
        }catch(IllegalBlockSizeException e){
                        e.printStackTrace();
        }catch(BadPaddingException e){
                        e.printStackTrace();
        }

    }                           

http://3.141592653589793238462643383279502884197169399375105820974944592.com/index314.html
 
0 0 hvala 0
16 godina
neaktivan
offline
RE: Kriptografija u Javi
1domagoj1 kaže...

Pozdrav, opet ja. Treba mi pomoć ako netko zna u čemu je problem i šta da sredim u kodu. Naime, ja kad pokrenem svoj program, dobim ovaj output:

 

Text: neki tekst

Text [bytes]: [B@4321

Text [encrypted]: [B@5554532

Text [decrypted]: neki tekst

 

Problem je u tome šta dobivam takav output u drugom i trećem retku, kolko sam skužio to su adrese di je pohranjen taj string. Šta da napravim u kodu da mi taj tekst u bajtovima (npr. u heksadekadskom formatu) baš i ispiše kao bajtove, a ne mem. lokaciju? Isto vrijedi i za kriptirani tekst, on pokazuje tu neku mem. lokaciju, umjesto nekih žblj bajtova. Molim pomoć, evo kod je

 

Dva rijesenja:

ili prije ispisa konstruiraj String:

outputTest.append("encrypted text: " + new String(textEncrypted));

 

Ili iskoristi Arrays utility klasu:

outputTest.append("encrypted text: " + Arrays.toString(textEncrypted));

 

Cudno mi je da nisi sam skuzio bug, kad si na kraju tocno konvertirao byte[] u String za ispis.

Welcome - millenium... the fall of Planet Hate...
Poruka je uređivana zadnji put pon 14.6.2010 20:26 (Deus ex machina).
17 godina
neaktivan
offline
Kriptografija u Javi

Hvala na savjetu, skužio sam u ćemu sam griješio, na kraju sam for petljom ispisao sve sve byteove u arrayu.

http://3.141592653589793238462643383279502884197169399375105820974944592.com/index314.html
 
0 0 hvala 0
7 godina
neaktivan
offline
Kriptografija - primjer dekriptovanja

Potrebna mi je pomoc oko sledeceg zadatka:

 

Lozinka se dobija desifrovanjem sljedecih sifrata:

 

  1.  ETFUKZALRVRPAIOLIESNOVST

  2.  ŠŽJPTHDRAORŽŽNJDRŽIDŽODŽIRDOJNEŽLJIDEDŽNJOŽPRTNJ

  3.  ŠIARIZIPETKRKELZNEARSUJGSATOKPTE

  4.  DVKST LSZPS EONIS PNAET JLIRU OJLZU SAOAP

  5.  WKHVHYHQWKFKDUDFWHURIWKHSDVVZRUGLVU

  6.  GSVVRTSGSXSZIZXGVILUGSVKZHHDLIWRHL

 

Sifrati su kreirani koristenjem sljedecih algoritama:

 

  1.  Rotation,

  2.  Cesar,

  3.  Rail fence,

  4.  route,

  5.  Myszkowski,

  6.  Atbash.

 

Napomena: Kriptoanaliticaru nije poznato koji sifrat je kreiran kojim algoritmom, niti su mu poznati koristeni kljucevi.

 

Pitanje:Moze li neko dati reference za ove algoritme sa primjerima kako se koriste? Kako mozemo predvidjeti koji sifrat je kreiran kojim algoritmom i koji su koristeni kljucevi?

Poruka je uređivana zadnji put uto 17.10.2017 9:46 (megaman).
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice