· 7 years ago · Dec 05, 2018, 02:22 PM
1public class Aes {
2
3public SecretKey secretKey;
4
5public Aes(SecretKey secretKey) {
6 this.secretKey = secretKey;
7}
8
9public Aes() {
10 try {
11 KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
12 keyGenerator.init(256);
13 this.secretKey = keyGenerator.generateKey();
14 } catch (NoSuchAlgorithmException e) {
15 e.printStackTrace();
16 }
17}
18
19public byte[] makeAes(byte[] rawMessage, int cipherMode){
20 try {
21 Cipher cipher = Cipher.getInstance("AES");
22 cipher.init(cipherMode, this.secretKey, new IvParameterSpec(new byte[16]));
23 byte [] output = cipher.doFinal(rawMessage);
24 return output;
25 } catch (Exception e){
26 Log.d("TAG", e.toString());
27 e.printStackTrace();
28 return null;
29 }
30}
31}
32
33Aes aes = new Aes();
34String stringKey = Base64.encodeToString(aes.secretKey.getEncoded(), Base64.DEFAULT);
35String noteToCrypt = note_text.getText().toString();
36String note = "";
37try {
38 note = new String (aes.makeAes(noteToCrypt.getBytes("UTF-8"), Cipher.ENCRYPT_MODE));
39} catch (UnsupportedEncodingException e) {
40 e.printStackTrace();
41}
42
43try {
44 String note = post.child(note_id).child("note").getValue().toString();
45 String key = post.child(note_id).child("key").getValue().toString();
46 byte[] encodedKey = Base64.decode(key.getBytes("UTF-8"), Base64.DEFAULT);
47 SecretKey originalKey = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
48 Aes aes = new Aes(originalKey);
49 byte[] result = aes.makeAes(note.getBytes("UTF-8"), Cipher.DECRYPT_MODE); // error
50 note = new String(result);
51 note_text.setText(note);
52} catch (NullPointerException e) { } catch (UnsupportedEncodingException e){
53 e.printStackTrace();
54}
55
5612-05 14:11:56.163 8384-8384/com.example.androidedx.safe1 W/System.err: javax.crypto.IllegalBlockSizeException: last block incomplete in decryption
57 at com.android.org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(BaseBlockCipher.java:853)
58 at javax.crypto.Cipher.doFinal(Cipher.java:1502)
59 at com.example.androidedx.safe1.Aes.makeAes(Aes.java:34)
60 at com.example.androidedx.safe1.EditNoteActivity$1.onDataChange(EditNoteActivity.java:102)
61 at com.google.android.gms.internal.zzegf.zza(Unknown Source)
62 at com.google.android.gms.internal.zzeia.zzbyc(Unknown Source)
63 at com.google.android.gms.internal.zzeig.run(Unknown Source)
64 at android.os.Handler.handleCallback(Handler.java:739)
65 at android.os.Handler.dispatchMessage(Handler.java:95)
66 at android.os.Looper.loop(Looper.java:148)
67 at android.app.ActivityThread.main(ActivityThread.java:5417)
68 12-05 14:11:56.164 8384-8384/com.example.androidedx.safe1 W/System.err:
69 at java.lang.reflect.Method.invoke(Native Method)
70 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
71 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)