Encrypt And Decrypt Example in JAVA
Security is the first concern when you develope application what have sensitive data such as account number, passport number , etc .
Today i want to show example how to do simple encrypt and decrypt method in JAVA.
In this tutorial i will use 3rd party library, you can download the library by the following link :
By Mohd Zulkamal
NOTE : – If You have Found this post Helpful, I will appreciate if you can Share it on Facebook, Twitter and Other Social Media Sites. Thanks =)
Today i want to show example how to do simple encrypt and decrypt method in JAVA.
In this tutorial i will use 3rd party library, you can download the library by the following link :
The import library :
import org.apache.commons.codec.binary.Base64;
import java.io.*;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import javax.swing.JOptionPane;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
The SharedVector
private static byte[] sharedvector = {
0x01, 0x02, 0x03, 0x05, 0x07, 0x0B, 0x0D, 0x11
};
The Encrypt Method :
public String EncryptText(String RawText)
{
String EncText = "";
byte[] keyArray = new byte[24];
byte[] temporaryKey;
String key = "developersnotedotcom";
byte[] toEncryptArray = null;
try
{
toEncryptArray = RawText.getBytes("UTF-8");
MessageDigest m = MessageDigest.getInstance("MD5");
temporaryKey = m.digest(key.getBytes("UTF-8"));
if(temporaryKey.length < 24) // DESede require 24 byte length key
{
int index = 0;
for(int i=temporaryKey.length;i< 24;i++)
{
keyArray[i] = temporaryKey[index];
}
}
Cipher c = Cipher.getInstance("DESede/CBC/PKCS5Padding");
c.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(keyArray, "DESede"), new IvParameterSpec(sharedvector));
byte[] encrypted = c.doFinal(toEncryptArray);
EncText = Base64.encodeBase64String(encrypted);
}
catch(NoSuchAlgorithmException | UnsupportedEncodingException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException NoEx)
{
JOptionPane.showMessageDialog(null, NoEx);
}
return EncText;
}
The Decrypt Method :
public String DecryptText(String EncText)
{
String RawText = "";
byte[] keyArray = new byte[24];
byte[] temporaryKey;
String key = "developersnotedotcom";
byte[] toEncryptArray = null;
try
{
MessageDigest m = MessageDigest.getInstance("MD5");
temporaryKey = m.digest(key.getBytes("UTF-8"));
if(temporaryKey.length < 24) // DESede require 24 byte length key
{
int index = 0;
for(int i=temporaryKey.length;i< 24;i++)
{
keyArray[i] = temporaryKey[index];
}
}
Cipher c = Cipher.getInstance("DESede/CBC/PKCS5Padding");
c.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keyArray, "DESede"), new IvParameterSpec(sharedvector));
byte[] decrypted = c.doFinal(Base64.decodeBase64(EncText));
RawText = new String(decrypted, "UTF-8");
}
catch(NoSuchAlgorithmException | UnsupportedEncodingException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException NoEx)
{
JOptionPane.showMessageDialog(null, NoEx);
}
return RawText;
}
}
By Mohd Zulkamal
NOTE : – If You have Found this post Helpful, I will appreciate if you can Share it on Facebook, Twitter and Other Social Media Sites. Thanks =)