I try to use AES in Java. I found a code snippet but output is wrong. There is a lot of EF BF BD
in output. I could not find what is wrong with my code ?
public class AES
{
static String encryptionKey = "48C3B4286FF421A4A328E68AD9E542A4";
static String clearText = "00000000000000000000000000000000";
public static void main(String[] args) throws UnsupportedEncodingException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException
{
encr();
}
public static String toHexString(byte[] ba)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < ba.length; i++)
{
sb.append(String.format("%02X ", ba[i]));
}
return sb.toString();
}
public static void encr() throws InvalidKeyException, UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException
{
//Security.addProvider(new com.sun.crypto.provider.SunJCE());
SecretKeySpec secretKey = new SecretKeySpec(encryptionKey.getBytes("UTF-8"), "AES");
byte[] clearTextBytes = clearText.getBytes("UTF8");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] cipherBytes = cipher.doFinal(clearTextBytes);
System.out.print("enc1: ");
for (int i = 0; i < cipherBytes.length; i++)
{
System.out.print(cipherBytes[i]);
}
System.out.println("");
String cipherText = new String(cipherBytes, "UTF8");
System.out.println("enc2: " + cipherText);
System.out.println("enc3: " + toHexString(cipherText.getBytes("UTF-8")));
}
}
output is :
enc1: 51 72 -122 -57 -109 127 57 85 116 63 -89 -35 55 -72 37 -96 51 72 -122 -57 -109 127 57 85 116 63 -89 -35 55 -72 37 -96 -82 103 -117 -60 -102 -91 -51 55 -53 23 33 -82 -70 -14 74 41
enc2: 3H�Ǔ9Ut?��7�%�3H�Ǔ9Ut?��7�%��g�Ě��7�!���
enc3: 33 48 EF BF BD C7 93 7F 39 55 74 3F EF BF BD EF BF BD 37 EF BF BD 25 EF BF BD 33 48 EF BF BD C7 93 7F 39 55 74 3F EF BF BD EF BF BD 37 EF BF BD 25 EF BF BD EF BF BD 67 EF BF BD C4 9A EF BF BD EF BF BD 37 EF BF BD 17 21 EF BF BD EF BF BD EF BF BD
but it should be
33 48 86 c7 93 7f 39 55 74 3f a7 dd 37 b8 25 a0