· 7 years ago · May 28, 2018, 04:26 AM
1import javax.crypto.*;
2import java.security.*;
3import java.io.UnsupportedEncodingException;
4
5public class AES256_GCM {
6
7public String encrypt(String cleartext) {
8
9 try
10 {
11 // encoding format needs thought
12 byte[] clearTextbytes = cleartext.getBytes("UTF-8");
13 final SecureRandom secureKeyRandomness = SecureRandom.getInstanceStrong();
14 final KeyGenerator AES_keyInstance = KeyGenerator.getInstance("AES");
15 AES_keyInstance.init(128, secureKeyRandomness);
16 final SecretKey secretKey = AES_keyInstance.generateKey();
17 final Cipher AES_cipherInstance = Cipher.getInstance("AES/GCM/NoPadding");
18 AES_cipherInstance.init(Cipher.ENCRYPT_MODE, secretKey);
19 byte[] encryptedText = AES_cipherInstance.doFinal(clearTextbytes);
20 return decrypt(encryptedText, secretKey);
21 }
22 catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException | UnsupportedEncodingException e)
23 {
24 e.printStackTrace();
25 }
26 return "something went wrong with encrypt";
27} // encrypt.
28
29public String decrypt(byte[] encryptedText, SecretKey secretKey) {
30 try
31 {
32 final Cipher AES_cipherInstance = Cipher.getInstance("AES/GCM/NoPadding");
33 AES_cipherInstance.init(Cipher.DECRYPT_MODE, secretKey);
34 byte[] decryptedText = AES_cipherInstance.doFinal(encryptedText);
35 return new String(decryptedText, "UTF-8");
36 }
37 catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException | UnsupportedEncodingException e)
38 {
39 e.printStackTrace();
40 }
41 return "something went wrong with decrypt";
42} // decrypt.
43
44} // AES256_GCM.
45
46java.security.InvalidKeyException: Parameters missing
47 at com.sun.crypto.provider.CipherCore.init(CipherCore.java:470)
48 at com.sun.crypto.provider.AESCipher.engineInit(AESCipher.java:313)
49 at javax.crypto.Cipher.implInit(Cipher.java:801)
50 at javax.crypto.Cipher.chooseProvider(Cipher.java:863)
51 at javax.crypto.Cipher.init(Cipher.java:1248)
52 at javax.crypto.Cipher.init(Cipher.java:1185)
53 at PackageName.AES256_GCM.decrypt(AES256_GCM.java:49)
54 at PackageName.AES256_GCM.encrypt(AES256_GCM.java:36)
55 at com.javafxpractice.PackageName.letsEncrypt.letsEnc(letsEncrypt.java:10)
56 at com.javafxpractice.PackageName.Controller.onClicked(Controller.java:24)
57 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
58 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
59 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
60 at java.lang.reflect.Method.invoke(Unknown Source)
61 at sun.reflect.misc.Trampoline.invoke(Unknown Source)
62 at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
63 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
64 at java.lang.reflect.Method.invoke(Unknown Source)
65 at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
66 at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
67 at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
68 at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
69 at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
70 at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
71 at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
72 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
73 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
74 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
75 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
76 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
77 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
78 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
79 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
80 at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
81 at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
82 at javafx.event.Event.fireEvent(Event.java:198)
83 at javafx.scene.Node.fireEvent(Node.java:8413)
84 at javafx.scene.control.Button.fire(Button.java:185)
85 at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
86 at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
87 at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
88 at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
89 at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
90 at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
91 at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
92 at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
93 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
94 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
95 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
96 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
97 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
98 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
99 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
100 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
101 at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
102 at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
103 at javafx.event.Event.fireEvent(Event.java:198)
104 at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
105 at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
106 at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
107 at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
108 at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
109 at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
110 at java.security.AccessController.doPrivileged(Native Method)
111 at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432)
112 at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
113 at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
114 at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
115 at com.sun.glass.ui.View.notifyMouse(View.java:937)
116 at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
117 at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
118 at java.lang.Thread.run(Unknown Source)
119java.security.InvalidKeyException: Parameters missing
120 at com.sun.crypto.provider.CipherCore.init(CipherCore.java:470)
121 at com.sun.crypto.provider.AESCipher.engineInit(AESCipher.java:313)
122 at javax.crypto.Cipher.implInit(Cipher.java:801)
123 at javax.crypto.Cipher.chooseProvider(Cipher.java:863)
124 at javax.crypto.Cipher.init(Cipher.java:1248)
125 at javax.crypto.Cipher.init(Cipher.java:1185)
126 at PackageName.AES256_GCM.decrypt(AES256_GCM.java:49)
127 at PackageName.AES256_GCM.encrypt(AES256_GCM.java:36)
128 at com.javafxpractice.PackageName.letsEncrypt.letsEnc(letsEncrypt.java:10)
129 at com.javafxpractice.PackageName.Controller.onEnter(Controller.java:32)
130 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
131 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
132 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
133 at java.lang.reflect.Method.invoke(Unknown Source)
134 at sun.reflect.misc.Trampoline.invoke(Unknown Source)
135 at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
136 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
137 at java.lang.reflect.Method.invoke(Unknown Source)
138 at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
139 at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
140 at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
141 at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
142 at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
143 at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
144 at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
145 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
146 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
147 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
148 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
149 at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
150 at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
151 at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
152 at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
153 at javafx.event.Event.fireEvent(Event.java:198)
154 at javafx.scene.Scene$KeyHandler.process(Scene.java:3964)
155 at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910)
156 at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040)
157 at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501)
158 at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:217)
159 at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:149)
160 at java.security.AccessController.doPrivileged(Native Method)
161 at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$352(GlassViewEventHandler.java:248)
162 at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
163 at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:247)
164 at com.sun.glass.ui.View.handleKeyEvent(View.java:546)
165 at com.sun.glass.ui.View.notifyKey(View.java:966)
166 at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
167 at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
168 at java.lang.Thread.run(Unknown Source)