Я пытаюсь сделать программу шифрования и дешифрования через DES. В этом разделе кода я создаю SecretKeyШифровать текст с помощью секретного ключа DES в java
Cipher desCipher;
KeyGenerator keygenerator;
SecretKey myDesKey;
try{
keygenerator = KeyGenerator.getInstance("DES");
myDesKey = keygenerator.generateKey();
byte[] encoded = myDesKey.getEncoded();
// convert secret key to string
String stringKey =Base64.encodeToString(myDesKey.getEncoded());
// converting back from string to secret key.
//its returning javax.crypto.spec.SecretKey object but i need com.sun.crypto.provider.DESKey object
SecretKey originalKey = new SecretKeySpec(stringKey.getBytes(), 0, stringKey.length(), "DES");
String text="hello how are you "
desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, myDesKey);
byte[] textEncrypted = desCipher.doFinal(text.getBytes());
System.out.println("text encrypted successfully");
}
catch(Exception ex)
{
ex.printStackTrace();
}
is throwing the exception
java.security.InvalidKeyException: Нет установлен провайдер поддерживает этот ключ: (нуль)
И ваш вопрос? – EJP
Возможный дубликат [Преобразование ключа в строку и обратно в ключевую Java] (http://stackoverflow.com/questions/12292389/converting-key-to-string-and-back-to-key-java) –
Посмотрите, что я я спрашиваю, что этот вопрос возвращается, и что я хочу –