Kopieren Sie den Codecode wie folgt:
java.security.Key importieren;
import java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
javax.crypto.Cipher importieren;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
öffentliche Klasse Des
{
öffentlicher statischer finaler String ALGORITHM_DES = "DES/CBC/PKCS5Padding";
privates statisches Protokoll log = LogFactory.getLog(Des.class);
/**
* DES-Algorithmus, Verschlüsselung
*
* @param Datenzeichenfolge, die verschlüsselt werden soll
* @param key Privater Verschlüsselungsschlüssel, die Länge darf nicht weniger als 8 Bits betragen
* @return Verschlüsseltes Byte-Array, im Allgemeinen in Kombination mit Base64-Codierung verwendet
* @throws CryptException-Ausnahme
*/
public static String encode(String key,String data) löst eine Ausnahme aus
{
return encode(key, data.getBytes());
}
/**
* DES-Algorithmus, Verschlüsselung
*
* @param Datenzeichenfolge, die verschlüsselt werden soll
* @param key Privater Verschlüsselungsschlüssel, die Länge darf nicht weniger als 8 Bits betragen
* @return Verschlüsseltes Byte-Array, im Allgemeinen in Kombination mit Base64-Codierung verwendet
* @throws CryptException-Ausnahme
*/
public static String encode(String key,byte[] data) löst eine Ausnahme aus
{
versuchen
{
DESKeySpec dks = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//Die Länge des Schlüssels darf nicht weniger als 8 Bytes betragen
Schlüssel SecretKey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.ENCRYPT_MODE, SecretKey,paramSpec);
byte[] bytes = cipher.doFinal(data);
return Base64.encode(bytes);
} Catch (Ausnahme e)
{
wirf eine neue Ausnahme(e);
}
}
/**
* DES-Algorithmus, Entschlüsselung
*
* Zu entschlüsselnde @param-Datenzeichenfolge
* @param key Privater Entschlüsselungsschlüssel, die Länge darf nicht weniger als 8 Bits betragen
* @return entschlüsseltes Byte-Array
* @throws Exception-Ausnahme
*/
public static byte[] decode(String key,byte[] data) löst eine Ausnahme aus
{
versuchen
{
SecureRandom sr = new SecureRandom();
DESKeySpec dks = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//Die Länge des Schlüssels darf nicht weniger als 8 Bytes betragen
Schlüssel SecretKey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.DECRYPT_MODE, SecretKey,paramSpec);
return cipher.doFinal(data);
} Catch (Ausnahme e)
{
// e.printStackTrace();
wirf eine neue Ausnahme(e);
}
}
/**
* Holen Sie sich den codierten Wert
* @param-Schlüssel
* @param-Daten
* @zurückkehren
* @throwsException
* @throwsException
*/
public static String decodeValue(String key,String data) löst eine Ausnahme aus
{
Byte[]-Daten;
String-Wert = null;
datas = decode(key, Base64.decode(data));
value = new String(datas);
if (value.equals("")){
throw new Exception();
}
Rückgabewert;
}
}