Below is a sample java code to encrypt and decrypt a string.
package com.kishore;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Encrypt {
protected final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
public static void main(String[] args) {
String encryptString = "45634634";
final String KEY = "kishore";
Encrypt obj = new Encrypt();
String encryptedString = obj.encrypt(encryptString, obj.encryptSecretKey(KEY));
System.out.println("encryptedString: "+encryptedString);
String decyptedString = obj.decrypt(encryptedString, obj.encryptSecretKey(KEY));
System.out.println("decyptedString: "+decyptedString);
}
public SecretKeySpec encryptSecretKey(final String secretKey) {
MessageDigest sha = null;
SecretKeySpec encryptApiSecret = null;
try {
byte[] key = secretKey.getBytes("UTF-8");
sha = MessageDigest.getInstance("SHA-1");
key = sha.digest(key);
key = Arrays.copyOf(key, 16);
encryptApiSecret = new SecretKeySpec(key, "AES");
} catch (final NoSuchAlgorithmException e) {
LOGGER.error("Exception occurred in encryptApiSecret",e);
} catch (final UnsupportedEncodingException e) {
LOGGER.error("Exception occurred in encryptApiSecret",e);
}
return encryptApiSecret;
}
public String decrypt(final String strToDecrypt, final SecretKeySpec secretKey) {
String decryptedApiKey = "";
try {
final Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] c = Base64.decodeBase64(strToDecrypt.getBytes("UTF-8"));
decryptedApiKey = new String(cipher.doFinal(c));
} catch (final Exception e) {
LOGGER.error("Exception occurred in decrypt",e);
}
return decryptedApiKey;
}
public String encrypt(final String strToDecrypt, final SecretKeySpec secretKey) {
String encryptedApiKey = "";
try {
final Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] c = cipher.doFinal(strToDecrypt.getBytes());
encryptedApiKey = new String(Base64.encodeBase64(c));
} catch (final Exception e) {
LOGGER.error("Exception occurred in encrypt",e);
}
return encryptedApiKey;
}
}
No comments:
Post a Comment
If you have any doubts or questions, please let us know.