Java
package com.security;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
/**
* @author drvijay
* @date 13-0ct-2021
*/
public class EncryptDecrypt
{
private static String encrypt ( String data, String cipherType, String key, String iv )
{
String encrypted = "";
try
{
Cipher encryptionCipher = Cipher.getInstance ( cipherType );
IvParameterSpec ivv = new IvParameterSpec ( iv.getBytes ( "UTF-8" ), 0, encryptionCipher.getBlockSize () );
encryptionCipher.init ( Cipher.ENCRYPT_MODE, new SecretKeySpec ( key.getBytes (), "AES" ), ivv );
// encrypt
byte [] cipherText = encryptionCipher.doFinal ( data.getBytes () );
encrypted = new String ( Base64.getEncoder ().encode ( cipherText ) );
}
catch ( Exception e )
{
throw new IllegalStateException ( e );
}
return encrypted;
}
private static String decrypt ( String encryptData, String cipherType, String key, String iv )
{
String decrypted = "";
try
{
Cipher decryptionCipher = Cipher.getInstance ( cipherType );
IvParameterSpec ivv = new IvParameterSpec ( iv.getBytes ( "UTF-8" ), 0, decryptionCipher.getBlockSize () );
SecretKeySpec secretKeySpec = new SecretKeySpec ( key.getBytes (), "AES" );
decryptionCipher.init ( Cipher.DECRYPT_MODE, secretKeySpec, ivv );
// decrypt
byte [] finalCipherText = decryptionCipher.doFinal ( Base64.getDecoder ().decode ( encryptData ) );
// converting to string
String finalDecryptedValue = new String ( finalCipherText );
decrypted = finalDecryptedValue;
}
catch ( Exception e )
{
throw new IllegalStateException ( e );
}
return decrypted;
}
public static void main ( String [] args )
{
String cipherType = "AES/CTR/NoPadding";
String valueToEncrypt = "hello, vijay";
String key = "0123456789abcdef";
String iv = "2208250639374785";
String encrypted = encrypt ( valueToEncrypt, cipherType, key, iv );
String decrypted = decrypt ( encrypted, cipherType, key, iv );
//System.out.println(Base64.getDecoder ().decode ( "ycbnIE8vn2lTUi/9F/FEa+5v86qzOU09yjdxfGDc8wA=" ));
// END OF ENCODE CODE
System.out.println ( "encrypted and saved as Base64 : " + encrypted );
System.out.println ( "decrypted from Base64->aes128 : " + decrypted );
// END OF DECRYPT CODE
}
}
PHP code
<!DOCTYPE html>
<html>
<body>
<?php
$simple_string = "hello, vijay";
echo ($simple_string .'<br/>');
$ciphering = 'AES-128-CTR';
$iv_length = openssl_cipher_iv_length($ciphering);
$options = 0;
// Non-NULL Initialization Vector for encryption
$iv = '2208250639374785';
$key = '0123456789abcdef';
$encryption = openssl_encrypt($simple_string, $ciphering,
$key, $options, $iv);
echo($encryption .'<br/>');
$decryption=openssl_decrypt ($encryption, $ciphering,
$key, $options, $iv);
echo($decryption .'<br/>');
?>
</body>
</html>
0iQoUVC/QZG3cM20
hello, vijay
No comments:
Post a Comment