· 5 years ago · Mar 19, 2020, 09:58 AM
1package knjigazis;
2import java.io.IOException;
3import java.io.UnsupportedEncodingException;
4import java.nio.file.Files;
5import java.nio.file.Path;
6import java.nio.file.Paths;
7import java.nio.file.StandardOpenOption;
8import java.security.InvalidKeyException;
9import java.security.NoSuchAlgorithmException;
10import javax.crypto.BadPaddingException;
11import javax.crypto.Cipher;
12import javax.crypto.IllegalBlockSizeException;
13import javax.crypto.KeyGenerator;
14import javax.crypto.NoSuchPaddingException;
15import javax.crypto.SecretKey;
16import javax.crypto.spec.SecretKeySpec;
17
18public class AESsifra2 {
19 public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException, IOException {
20 //Inicijalizovanje tajnog ključa za AES algoritam
21 KeyGenerator kg = KeyGenerator.getInstance("AES");
22 SecretKey kljuc = kg.generateKey();
23 byte[] AESkljuc = kljuc.getEncoded();
24 SecretKeySpec specifikacijaKljuca = new SecretKeySpec(AESkljuc, "AES");
25
26 //Inicijalizovanje parametara AES algoritma - šifra
27 Cipher sifra = Cipher.getInstance("AES/CBC/PKCS5Padding");
28 sifra.init(Cipher.ENCRYPT_MODE, specifikacijaKljuca);
29
30 //Poruke
31 String poruka1 = "UNIVERZITET SINGIDUNUM 2015.";
32 String poruka2 = "Fakultet za informatiku i računarstvo!";
33 String poruka3 = "Praktikum iz zaštite informacionih sistema!";
34
35 //Pozivanje update() metoda pojedinačno za svaku novu poruku
36 sifra.update(poruka1.getBytes("UTF-8"));
37 sifra.update(poruka2.getBytes("UTF-8"));
38 sifra.update(poruka3.getBytes("UTF-8"));
39
40 //Šifrovanje - kompletiranje šifarske operacije
41 byte sifrat[] = sifra.doFinal();
42
43 //Upis šifrata u fajl
44 Path lokacija = Paths.get("Sifraat.AES");
45 Files.write(lokacija, sifrat, StandardOpenOption.CREATE_NEW);
46 }
47}