Скопируйте код кода следующим образом:
импортировать java.security.Key;
импортировать java.security.SecureRandom;
импортировать java.security.spec.AlgorithmParameterSpec;
импортировать javax.crypto.Cipher;
импортировать javax.crypto.SecretKeyFactory;
импортировать javax.crypto.spec.DESKeySpec;
импортировать javax.crypto.spec.IvParameterSpec;
импортировать org.apache.commons.logging.Log;
импортировать org.apache.commons.logging.LogFactory;
общественный класс Дес
{
общедоступная статическая финальная строка ALGORITHM_DES = "DES/CBC/PKCS5Padding";
частный статический журнал журнала = LogFactory.getLog(Des.class);
/**
* Алгоритм DES, шифрование
*
* Строка данных @param для шифрования
* @param key Закрытый ключ шифрования, длина не может быть меньше 8 бит.
* @return Зашифрованный байтовый массив, обычно используемый в сочетании с кодировкой Base64.
* @throws исключение CryptException
*/
общедоступное статическое строковое кодирование (строковый ключ, строковые данные) выдает исключение
{
вернуть кодировку (ключ, data.getBytes());
}
/**
* Алгоритм DES, шифрование
*
* Строка данных @param для шифрования
* @param key Закрытый ключ шифрования, длина не может быть меньше 8 бит.
* @return Зашифрованный байтовый массив, обычно используемый в сочетании с кодировкой Base64.
* @throws исключение CryptException
*/
общедоступное статическое строковое кодирование (строковый ключ, данные байта []) выдает исключение
{
пытаться
{
DESKeySpec dks = новый DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//Длина ключа не может быть меньше 8 байт
Ключ secretKey = keyFactory.generateSecret(dks);
Шифр шифр = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.ENCRYPT_MODE, secretKey,paramSpec);
byte[] байты = cipher.doFinal(данные);
вернуть Base64.encode(байты);
} поймать (исключение e)
{
выдать новое исключение(e);
}
}
/**
* Алгоритм DES, расшифровка
*
* Строка данных @param для расшифровки
* @param key Закрытый ключ дешифрования, длина не может быть меньше 8 бит.
* @return расшифрованный массив байтов
* Исключение @throws Exception
*/
публичное статическое декодирование byte[] (строковый ключ, данные byte[]) выдает исключение
{
пытаться
{
SecureRandom ср = новый SecureRandom();
DESKeySpec dks = новый DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//Длина ключа не может быть меньше 8 байт
Ключ secretKey = keyFactory.generateSecret(dks);
Шифр шифр = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.DECRYPT_MODE, secretKey,paramSpec);
вернуть cipher.doFinal(данные);
} поймать (исключение e)
{
// e.printStackTrace();
выдать новое исключение(e);
}
}
/**
* Получить закодированное значение
* Ключ @param
* данные @param
* @возвращаться
* @throwsException
* @throwsException
*/
общедоступная статическая строка decodeValue (ключ строки, данные строки) выдает исключение
{
байтовые [] данные;
Строковое значение = ноль;
данные = декодировать (ключ, Base64.decode (данные));
значение = новая строка (данные);
если (value.equals("")){
выбросить новое исключение();
}
возвращаемое значение;
}
}