Copiez le code comme suit :
importer java.security.Key ;
importer java.security.SecureRandom ;
importer java.security.spec.AlgorithmParameterSpec ;
importer javax.crypto.Cipher ;
importer javax.crypto.SecretKeyFactory ;
importer javax.crypto.spec.DESKeySpec ;
importer javax.crypto.spec.IvParameterSpec ;
importer org.apache.commons.logging.Log ;
importer org.apache.commons.logging.LogFactory ;
classe publique Des
{
chaîne finale statique publique ALGORITHM_DES = "DES/CBC/PKCS5Padding";
Journal de journal statique privé = LogFactory.getLog (Des.class);
/**
* Algorithme DES, cryptage
*
* Chaîne de données @param à chiffrer
* @param key Clé privée de chiffrement, la longueur ne peut pas être inférieure à 8 bits
* @return Tableau d'octets chiffré, généralement utilisé en combinaison avec l'encodage Base64
* @throws Exception CryptException
*/
L'encodage de chaîne statique public (clé de chaîne, données de chaîne) génère une exception
{
return encode(key, data.getBytes());
}
/**
* Algorithme DES, cryptage
*
* Chaîne de données @param à chiffrer
* @param key Clé privée de chiffrement, la longueur ne peut pas être inférieure à 8 bits
* @return Tableau d'octets chiffré, généralement utilisé en combinaison avec l'encodage Base64
* @throws Exception CryptException
*/
l'encodage de chaîne statique public (clé de chaîne, données d'octet []) génère une exception
{
essayer
{
DESKeySpec dks = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//La longueur de la clé ne peut pas être inférieure à 8 octets
Clé secretKey = keyFactory.generateSecret(dks);
Chiffre chiffre = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.ENCRYPT_MODE, secretKey,paramSpec);
octet[] octets = cipher.doFinal(data);
return Base64.encode (octets);
} attraper (Exception e)
{
lancer une nouvelle exception (e);
}
}
/**
* Algorithme DES, décryptage
*
* Chaîne de données @param à déchiffrer
* @param key Clé privée de décryptage, la longueur ne peut pas être inférieure à 8 bits
* @return tableau d'octets déchiffré
* Exception @throws
*/
le décodage public static byte[] (clé de chaîne, données byte[]) génère une exception
{
essayer
{
SecureRandom sr = new SecureRandom();
DESKeySpec dks = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//La longueur de la clé ne peut pas être inférieure à 8 octets
Clé secretKey = keyFactory.generateSecret(dks);
Chiffre chiffre = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.DECRYPT_MODE, secretKey,paramSpec);
return cipher.doFinal(data);
} attraper (Exception e)
{
// e.printStackTrace();
lancer une nouvelle exception (e);
}
}
/**
* Obtenez la valeur codée
* Clé @param
* Données @param
* @retour
* @throwsException
* @throwsException
*/
la chaîne statique publique decodeValue (clé de chaîne, données de chaîne) génère une exception
{
données octet[] ;
Valeur de chaîne = null ;
datas = decode(clé, Base64.decode(data));
valeur = nouvelle chaîne (données);
si (value.equals("")){
lancer une nouvelle exception ();
}
valeur de retour ;
}
}