Я использую шифрование RC4 в Java для шифрования открытого текста и преобразования его в зашифрованный текст с помощью ключа.Однако, после запуска моей программы, я сталкиваюсь с этой ошибкой ниже.Я понятия не имею, как решить проблему.Помощь очень ценится.Спасибо!
Исключение в потоке "main" java.security.InvalidKeyException: длина ключа должна быть от 40 до 1024 бит в com.sun.crypto.provider.ARCFOURCipher.getEncodedKey (ARCFOURCipher.java:202) в com.sun.crypto.provider.ARCFOURCipher.engineGetKeySize (ARCFOURCipher.java:259) в javax.crypto.Cipher.passCryptoPermCheck (Cipher.java:1067) в javax.crypto.Cipher.Cipher.Cipher.Cher.в javax.crypto.Cipher.implInit (Cipher.java:801) в javax.crypto.Cipher.chooseProvider (Cipher.java:864) в javax.crypto.Cipher.init (Cipher.java:1249) в javax.crypto.Cipher.init (Cipher.java:1186) на узле Host (Host.java:80) на узле Host.main (Host.java:134)
byte[] decodedKey = Base64.getDecoder().decode(pwwithoutspace);
SecretKey originalKey = new SecretKeySpec(decodedKey, 0, decodedKey.length, "RC4");
/* Encryption */
byte[] plainTextByteArray = gxmodp.getBytes();
Cipher cipher = Cipher.getInstance(ENCRYPTION_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, originalKey);
byte[] encrypted = cipher.doFinal(plainTextByteArray);
out.writeUTF("Ciphertext from Host: " + encrypted); // send to Client
cipher.init(Cipher.DECRYPT_MODE, originalKey);
byte[] decrypted = cipher.doFinal(encrypted);
System.out.println("Decrypted: " + new String(decrypted));