Copie o código do código da seguinte forma:
importar java.security.Key;
importar java.security.SecureRandom;
importar java.security.spec.AlgorithmParameterSpec;
importar javax.crypto.Cipher;
importar javax.crypto.SecretKeyFactory;
importar javax.crypto.spec.DESKeySpec;
importar javax.crypto.spec.IvParameterSpec;
importar org.apache.commons.logging.Log;
importar org.apache.commons.logging.LogFactory;
classe pública Des
{
public static final String ALGORITHM_DES = "DES/CBC/PKCS5Padding";
log de log estático privado = LogFactory.getLog (Des.class);
/**
* Algoritmo DES, criptografia
*
* @param string de dados a ser criptografada
* @param key Chave privada de criptografia, o comprimento não pode ser inferior a 8 bits
* @return Matriz de bytes criptografada, geralmente usada em combinação com codificação Base64
* @throws exceção CryptException
*/
Codificação de string estática pública (chave de string, dados de string) lança exceção
{
return codifica(chave, data.getBytes());
}
/**
* Algoritmo DES, criptografia
*
* @param string de dados a ser criptografada
* @param key Chave privada de criptografia, o comprimento não pode ser inferior a 8 bits
* @return Matriz de bytes criptografada, geralmente usada em combinação com codificação Base64
* @throws exceção CryptException
*/
Codificação de string estática pública (chave de string, byte [] dados) lança exceção
{
tentar
{
DESKeySpec dks = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//O comprimento da chave não pode ser inferior a 8 bytes
Chave secretaKey = keyFactory.generateSecret(dks);
Cifra cifra = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.ENCRYPT_MODE, secretKey,paramSpec);
byte[] bytes = cipher.doFinal(dados);
retornar Base64.encode(bytes);
} catch (Exceção e)
{
lançar nova exceção (e);
}
}
/**
* Algoritmo DES, descriptografia
*
* @param string de dados a ser descriptografada
* @param key Chave privada de descriptografia, o comprimento não pode ser inferior a 8 bits
* @return array de bytes descriptografados
* @throws Exceção exceção
*/
public static byte[] decode(String key,byte[] data) lança exceção
{
tentar
{
SecureRandom sr = new SecureRandom();
DESKeySpec dks = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//O comprimento da chave não pode ser inferior a 8 bytes
Chave secretaKey = keyFactory.generateSecret(dks);
Cifra cifra = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.DECRYPT_MODE, secretKey,paramSpec);
retornar cipher.doFinal(dados);
} catch (Exceção e)
{
//e.printStackTrace();
lançar nova exceção (e);
}
}
/**
* Obtenha o valor codificado
* @param chave
* @param dados
* @retornar
* @throwsException
* @throwsException
*/
String estática pública decodeValue (chave de string, dados de string) lança exceção
{
byte[] dados;
Valor da string = nulo;
dados = decodificar(chave, Base64.decode(dados));
valor = new String(dados);
if (valor.equals("")){
lançar nova Exceção();
}
valor de retorno;
}
}