Android DES Decrypt decode(String key, String data)

Here you can find the source of decode(String key, String data)

Description

decode

Declaration

public static String decode(String key, String data) 

Method Source Code

//package com.java2s;

import java.security.Key;
import java.security.spec.AlgorithmParameterSpec;

import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;

public class Main {
    public static final String ALGORITHM_DES = "DES/CBC/PKCS5Padding";

    public static String decode(String key, String data) {
        if (data == null)
            return null;
        try {/*from  w  w w .j a v a 2s  .c  o  m*/
            DESKeySpec dks = new DESKeySpec(key.getBytes());
            SecretKeyFactory keyFactory = SecretKeyFactory
                    .getInstance("DES");
            Key secretKey = keyFactory.generateSecret(dks);
            Cipher cipher = Cipher.getInstance(ALGORITHM_DES);
            IvParameterSpec iv = new IvParameterSpec(key.getBytes());
            AlgorithmParameterSpec paramSpec = iv;
            cipher.init(Cipher.DECRYPT_MODE, secretKey, paramSpec);
            return new String(cipher.doFinal(hex2byte(data.getBytes())));
        } catch (Exception e) {
            e.printStackTrace();
            return data;
        }
    }

    private static byte[] hex2byte(byte[] b) {
        if ((b.length % 2) != 0)
            throw new IllegalArgumentException();
        byte[] b2 = new byte[b.length / 2];
        for (int n = 0; n < b.length; n += 2) {
            String item = new String(b, n, 2);
            b2[n / 2] = (byte) Integer.parseInt(item, 16);
        }
        return b2;
    }
}

Related

  1. decode(String key, String data)
  2. desDecodeCBC(byte[] key, byte[] keyiv, byte[] data)
  3. desDecodeECB(byte[] key, byte[] data)
  4. decryptDES(String decryptString, String decryptKey)
  5. decryptDESFile(byte[] decryptData, String decryptKey)
  6. decode(String key, byte[] data)
  7. decrypt(byte[] key, byte[] src)
  8. encode(String key, String data)
  9. decryptBytes(String key, byte[] src)