title: AES Encryption by Java code and decryption by using OpenSSL (terminal)
body: <p>I am able to encrypt the data in the file using below mentioned Java code. But when I try to decrypt the encrypted file using OpenSSL from the command line then I am not be able to do that.</p>
  
  <p>I tried the command</p>
  
  <pre><code>openssl enc -aes-256-cbc -d -in file_05.encrypt.txt -out file_05.decrypt.txt
  </code></pre>
  
  <p>It asked for a password -
  enter aes-256-cbc decryption password:
  I entered the password as "helloworld",</p>
  
  <p>Then in the terminal it shows a "bad magic number" error message.</p>
  
  <pre><code>String pwd  = "helloworld";
  String SALT_VALUE  = "12345@salt";
  private String algorithm = "PBEWITHSHA256AND256BITAES-CBC-BC";
  
  
  String finalTxt  = "Hi, Goof After noon All.";
  
  char[] pwd = Crypt.password.toCharArray();
  
  SecretKey originalKey = Crypt.generateSK(pwd);
  
  byte[] cipherText = Crypt.encrypt(finalTxt.getBytes(),SALT_VALUE.getBytes(), originalKey);
  
  public static SecretKey generateSK(char[] passPhrase) throws NoSuchAlgorithmException,
                                                               InvalidKeySpecException,
                                                               NoSuchPaddingException,
                                                               InvalidAlgorithmParameterException,
                                                               InvalidKeyException {
  
      PBEKeySpec pbeKeySpec = new PBEKeySpec(passPhrase);
      SecretKeyFactory secretKeyFactory;
      secretKeyFactory = SecretKeyFactory.getInstance(algorithm);
      return secretKeyFactory.generateSecret(pbeKeySpec);
  }
  
  
  
  public static byte[] encrypt(byte[] image, byte[] salt, SecretKey sKey) throws InvalidKeyException,
              IllegalBlockSizeException,
              BadPaddingException,
              InvalidKeySpecException,
              UnsupportedEncodingException,
              InvalidAlgorithmParameterException {
          Cipher cipher;
          try {
              cipher = getCipher(Cipher.ENCRYPT_MODE, salt, sKey);
              return cipher.doFinal(image);
          } catch (Exception e) {
              e.printStackTrace();
  
          }
  
          return null;
      }
  
  private static Cipher getCipher(int mode, @NonNull byte[] salt, @NonNull SecretKey secretKey) throws Exception {
          PBEParameterSpec pbeParamSpecKey = new PBEParameterSpec(salt, 1000);
              Cipher cipher = Cipher.getInstance(algorithm);
              cipher.init(mode, secretKey, pbeParamSpecKey);
              return cipher;
      }
  </code></pre>