Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DesEncrypter {
- Cipher ecipher;
- Cipher dcipher;
- // 8-byte Salt
- byte[] salt = { (byte) 0xA9, (byte) 0x9B, (byte) 0xC8, (byte) 0x32,
- (byte) 0x56, (byte) 0x35, (byte) 0xE3, (byte) 0x03 };
- // Iteration count
- int iterationCount = 19;
- public DesEncrypter(String passPhrase) {
- try {
- // Create the key
- KeySpec keySpec = new PBEKeySpec(passPhrase.toCharArray(),
- salt, iterationCount);
- SecretKey key = SecretKeyFactory
- .getInstance("PBEWithMD5AndDES")
- .generateSecret(keySpec);
- ecipher = Cipher.getInstance(key.getAlgorithm());
- dcipher = Cipher.getInstance(key.getAlgorithm());
- // Prepare the parameter to the ciphers
- AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt,
- iterationCount);
- // Create the ciphers
- ecipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);
- dcipher.init(Cipher.DECRYPT_MODE, key, paramSpec);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- public String encrypt(String str) {
- try {
- // Encode the string into bytes using utf-8
- byte[] utf8 = str.getBytes("UTF8");
- // Encrypt
- byte[] enc = ecipher.doFinal(utf8);
- // Encode bytes to base64 to get a string
- return Base64.encodeBase64String(enc);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- public String decrypt(String str) {
- try {
- // Decode base64 to get bytes
- byte[] dec = Base64.decodeBase64(str);
- // Decrypt
- byte[] utf8 = dcipher.doFinal(dec);
- // Decode using utf-8
- return new String(utf8, "UTF8");
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
Add Comment
Please, Sign In to add comment