I am experimenting with cryptography and I was wondering if somebody has some suggestion how I could improve my code and methodology.
I want my process to generate more securely the cryptography process if that is possible.
import java.security.GeneralSecurityException; import java.security.Key; import java.util.Base64; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; @SuppressWarnings("ClassWithoutLogger") public class Crypto_Security { static public final String CRY_ALGO = "AES"; static public String encrypt(byte[] pSecret, String pValue) throws GeneralSecurityException { Key aesKey = new SecretKeySpec(pSecret, CRY_ALGO); Cipher cipher = Cipher.getInstance(CRY_ALGO); cipher.init(Cipher.ENCRYPT_MODE, aesKey); byte[] encrypted = cipher.doFinal(pValue.getBytes()); Base64.Encoder encoder = Base64.getEncoder(); return encoder.encodeToString(encrypted); } static public String decrypt(byte[] pSecret, String pEncrypted) throws GeneralSecurityException { SecretKeySpec skeySpec = new SecretKeySpec(pSecret, CRY_ALGO); Cipher cipher = Cipher.getInstance(CRY_ALGO); cipher.init(Cipher.DECRYPT_MODE, skeySpec); byte[] original = cipher.doFinal(Base64.getDecoder().decode(pEncrypted)); return new String(original); } static public void main( String[] args ) { try { System.out.println("enc " + encrypt( "2144226321110063".getBytes() , "serial.txt" )); System.out.println("dcr " + decrypt( "2144226321110063".getBytes() , "oLQgEUxg3Z3zMSsSkiKpBg==" )); } catch( GeneralSecurityException e ) { e.printStackTrace(); } return; } private Crypto_Security() { } }