· 5 years ago · Mar 19, 2020, 09:48 AM
1package knjigazis;
2import java.io.UnsupportedEncodingException;
3import java.security.InvalidKeyException;
4import java.security.NoSuchAlgorithmException;
5import javax.crypto.BadPaddingException;
6import javax.crypto.Cipher;
7import javax.crypto.IllegalBlockSizeException;
8import javax.crypto.KeyGenerator;
9import javax.crypto.NoSuchPaddingException;
10import javax.crypto.SecretKey;
11import javax.crypto.spec.SecretKeySpec;
12
13public class AESsifra {
14 public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException {
15 //Generisanje ključa
16 KeyGenerator kg = KeyGenerator.getInstance("AES");
17 SecretKey kljuc = kg.generateKey();
18 byte[] AESkljuc = kljuc.getEncoded();
19 SecretKeySpec specifikacijaKljuca = new SecretKeySpec(AESkljuc, "AES");
20 //Inicijalizovanje šifre
21 Cipher sifra = Cipher.getInstance("AES/CBC/PKCS5Padding");
22 sifra.init(Cipher.ENCRYPT_MODE, specifikacijaKljuca);
23 //Poruka za šifrovanje
24 String poruka = "UNIVERZITET SINGIDUNUM 2020.";
25 //Šifrovanje poruke
26 byte sifrat[] = sifra.doFinal(poruka.getBytes("UTF-8"));
27
28 System.out.println("Algoritam kljuca: "+kljuc.getAlgorithm());
29 System.out.println("Veličina ključa: "+kljuc.getEncoded().length*8);
30 System.out.println("Veličina bloka: "+sifra.getBlockSize());
31 System.out.println("Šifarski algoritam: "+sifra.getAlgorithm());
32 System.out.println("Provajder: "+sifra.getProvider());
33 System.out.println("IV: "+new String(sifra.getIV()));
34 System.out.println("Poruka: "+poruka);
35 System.out.println("Sifrat: "+new String(sifrat));
36 }
37}