Java AES 256 encryption
15,111
Yes, it will as 64 characters are 32 bytes and 256 bits and any sequence of 256 bits can be used as an AES-256 key.
I suggest you to use DatatypeConverter.parseHexBinary (or similar utility from library of your choice) to convert hexadecimal strings into byte arrays.
Author by
Admin
Updated on June 04, 2022Comments
-
Admin almost 2 years
I have the below java code to encrypt a string which uses a 64 character key. My question is will this be a AES-256 encryption?
String keyString = "C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE6C76A5C1F1716E"; byte[] keyValue = hexStringToByte(keyString); Key key = new SecretKeySpec(keyValue, "AES"); Cipher c1 = Cipher.getInstance("AES"); c1.init(Cipher.ENCRYPT_MODE, key); String data = "Some data to encrypt"; byte[] encVal = c1.doFinal(data.getBytes()); String encryptedValue = Base64.encodeBase64String(encVal); /* Copied the below code from another post in stackexchange */ public static byte[] hexStringToByte(String hexstr) { byte[] retVal = new BigInteger(hexstr, 16).toByteArray(); if (retVal[0] == 0) { byte[] newArray = new byte[retVal.length - 1]; System.arraycopy(retVal, 1, newArray, 0, newArray.length); return newArray; } return retVal; }
The following is the code after incorporating suggestions from divanov and laz.
String keyString = "C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE6C76A5C1F1716E"; byte[] keyValue = DatatypeConverter.parseHexBinary(keyString); Key key = new SecretKeySpec(keyValue, "AES"); Cipher c1 = Cipher.getInstance("AES"); c1.init(Cipher.ENCRYPT_MODE, key); String data = "Some data to encrypt"; byte[] encVal = c1.doFinal(data.getBytes()); String encryptedValue = Base64.encodeBase64String(encVal);
-
Elliott Frisch about 10 yearsReally? Did you see
byte[] new = new byte[retVal.length - 1];
? -
divanov about 10 yearsThis is a clumsy attempt to deal with sign byte appended by BigInteger.
-
laz about 10 yearsThere is
DatatypeConverter
that is part of the main Java API for decoding the hex string as well: docs.oracle.com/javase/7/docs/api/javax/xml/bind/…