Java des шифрование java.security.invalidkeyexception: неправильный размер ключейJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java des шифрование java.security.invalidkeyexception: неправильный размер ключей

Сообщение Anonymous »

Почему следующий код выбрасывает java.security.invalidkeyexception: Исключение неправильного размера ключа (во время шифрования)? У меня есть строка EncryptPassword (String Password, String MasterPassword) и строка DecryptPassword (String пароль, String MasterPassword) Метод? Оба вызывают метод Byte [] des (byte [] inputbytes, string masterpassword, int mode) . Я хотел бы передать мастерсписное слово с произвольной длиной. < /P>
package com.example.passwordsafe.data;

import com.example.passwordsafe.core.usecases.EncryptionModuleInterface;

import javax.crypto.*;
import javax.crypto.spec.DESKeySpec;
import java.security.*;
import java.security.spec.InvalidKeySpecException;

import java.util.Base64;

public class DESEncryption implements EncryptionModuleInterface {
private static final String PBKDF_ALGORITHM = "DES";
private static final String TRANSFORMATION = "DES/ECB/NoPadding";

@Override
public String encryptPassword(String password, String masterpassword) {
byte[] inputBytes;
byte[] outputBytes;
inputBytes = password.getBytes();
outputBytes = DES(inputBytes, masterpassword, Cipher.ENCRYPT_MODE);
Base64.Encoder encoder = Base64.getEncoder();
return encoder.encodeToString(outputBytes);
}

@Override
public String decryptPassword(String password, String masterpassword) {
byte[] inputBytes;
byte[] outputBytes;
Base64.Decoder decoder = Base64.getDecoder();
inputBytes = decoder.decode(password);
outputBytes = DES(inputBytes, masterpassword, Cipher.DECRYPT_MODE);
return new String(outputBytes);
}

public byte[] DES(byte[] inputBytes, String masterpassword, int mode) {
byte[] outputBytes;
SecretKey key;
Cipher cipher;

try {
SecretKeyFactory factory = SecretKeyFactory.getInstance(PBKDF_ALGORITHM);
DESKeySpec keySpec = new DESKeySpec(masterpassword.getBytes());
key = factory.generateSecret(keySpec);
} catch (NoSuchAlgorithmException | InvalidKeyException | InvalidKeySpecException e) {
throw new RuntimeException(e);
}

try {
cipher = Cipher.getInstance(TRANSFORMATION);
cipher.init(mode, key);
outputBytes = cipher.doFinal(inputBytes);
} catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException |
BadPaddingException e) {
throw new RuntimeException(e);
}

return outputBytes;
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... g-key-size
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • R блестящий java.lang.RuntimeException: java.security.InvalidKeyException: недопустимый размер ключа
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Java.security.InvalidKeyException: неизвестная версия: 3 – замок наград
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Расшифровка DES в angular
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • .InvalidKeyException: IOException: несоответствие версии при создании закрытого ключа с использованием файла PEM.
    Гость » » в форуме JAVA
    0 Ответы
    61 Просмотры
    Последнее сообщение Гость
  • .InvalidKeyException: IOException: несоответствие версии при создании закрытого ключа с использованием файла PEM.
    Anonymous » » в форуме JAVA
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»