java, расшифровка данных

326
07 июня 2017, 02:43

Есть класс шифрования/дешифрования строки.

функция шифрования:

public static String DESEncrypt(String datasource, String password) {
    String result = datasource;
    if (datasource != null) {
        try {
            if (!datasource.isEmpty()) {
                SecretKey securekey = SecretKeyFactory.getInstance("DES").generateSecret(new DESKeySpec(password.substring(0, 8).getBytes(Hex.DEFAULT_CHARSET_NAME)));
                AlgorithmParameterSpec iv = new IvParameterSpec(ivkey);
                Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
                cipher.init(1, securekey, iv);
                result = Base64.encodeToString(cipher.doFinal(datasource.getBytes(Hex.DEFAULT_CHARSET_NAME)), 0);
            }
        } catch (Throwable e) {
            Log.i("@error", e.getMessage());
        }
    }
    return result;
}

функция дешифрования:

public static String DESDecrypt(String src, String password) {
    String result = src;
    if (src == null) {
        return result;
    }
        if (src.isEmpty()) {
            return result;
        }
        byte[] item = password.substring(0, 8).getBytes();
        try {
            DESKeySpec item2 = new DESKeySpec(item);
            SecretKey securekey = SecretKeyFactory.getInstance("DES").generateSecret(item2);
        } catch (InvalidKeyException e) {
            // TODO Auto-generated catch block
            //e.printStackTrace();
        }
        return password.substring(0, 8);
        /*AlgorithmParameterSpec iv = new IvParameterSpec(ivkey);
        Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
        cipher.init(2, securekey, iv);
        return new String(cipher.doFinal(Base64.getDecoder().decode(src)));*/
}

интересует меня функция дешифрования, при ее запуске я вижу ошибку на строке

SecretKey securekey = SecretKeyFactory.getInstance("DES").generateSecret(item2);

господа знатоки, подскажите, что я делаю не правильно?

я специалист в области php,mysql.

Answer 1

Рискну предположить, что вам требуется установить расширение для работы с криптографией JCE скачать документация

READ ALSO
Как сгенерировать День Рождения?

Как сгенерировать День Рождения?

Необходимо создать 100 объектов с параметром день рожденияЯ так понимаю нужно использовать класс Date, но я не понимаю как использовать его

355
Java Online Server [требует правки]

Java Online Server [требует правки]

Есть игра, для которой нужен мультиплеерДля мультиплеера необходимо чтобы передовались лишь координаты одного из объектов

246
ProgressBar и цикл. Как совместить?

ProgressBar и цикл. Как совместить?

Как сделать что бы работал прогресс бар в модальном окне? Ибо пока не закрою диалог, код дальше не выполняетсяСделал такой пример:

331