Как проверить правильность секретного ключа - PullRequest
1 голос
/ 17 апреля 2019

Я делаю шифрование RC4 на Java. Однако я не уверен, что мой секретный ключ выводится правильно. Мои коды показаны ниже. Посоветуйте, спасибо! Обратитесь к моему выводу ниже.

    BigInteger newformula =  gwithoutspaces.modPow(newx, pwithoutspaces);
    //System.out.println("Formula: " + newformula); 
    String strformula = newformula.toString();
    System.out.println("Formula = " + strformula);

    /* Encryption */
    KeyGenerator keygenerator = KeyGenerator.getInstance(ENCRYPTION_ALGORITHM);
    keygenerator.init(128);     
    SecretKey secretkey = keygenerator.generateKey();
    byte[] plainTextByteArray = strformula.getBytes();

    Cipher cipher = Cipher.getInstance(ENCRYPTION_ALGORITHM);
    cipher.init(Cipher.ENCRYPT_MODE,secretkey);
    byte[] encrypted = cipher.doFinal(plainTextByteArray);
    //out.writeUTF("Ciphertext from Host: " + new String(encrypted)); // send to Client

    System.out.print("Encrypted data: ");
    for (int i =0; i < encrypted.length; i++)
    {
        System.out.print(encrypted[i] + " ");
    }

    System.out.print("\n");

    cipher.init(Cipher.DECRYPT_MODE,secretkey);
    byte[] decrypted = cipher.doFinal(encrypted);
    out.writeUTF("Secret Key from Host: " + secretkey); // send to Client

    System.out.println("Secret Key: " + secretkey);
    System.out.println("Decrypted: " + new String(decrypted));

Для вывода секретного ключа я получил что-то вроде
Секретный ключ: javax.crypto.spec.SecretKeySpec@d36805da

Могу ли я знать, правильно ли это? Пожалуйста, посоветуйте спасибо!

...