Szyfrowanie Java BouncyCastle Cast6Engine (CAST-256)

Usiłuję zaimplementować funkcję, która odbiera ciąg i zwraca zakodowane wartości ciągu w CAST-256. Poniższy kod jest tym, co implementuję za przykładem na oficjalnej stronie internetowej BoncyCastle (http://www.bouncycastle.org/specifications.html , pkt 4.1).

import org.bouncycastle.crypto.BufferedBlockCipher;
import org.bouncycastle.crypto.CryptoException;
import org.bouncycastle.crypto.engines.CAST6Engine;
import org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher;
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Base64;


public class Test {

    static{
        Security.addProvider(new BouncyCastleProvider());
    }

    public static final String UTF8 = "utf-8";
    public static final String KEY = "CLp4j13gADa9AmRsqsXGJ";

    public static byte[] encrypt(String inputString) throws UnsupportedEncodingException {
        final BufferedBlockCipher cipher = new PaddedBufferedBlockCipher(new CAST6Engine());
        byte[] key = KEY.getBytes(UTF8);
        byte[] input = inputString.getBytes(UTF8);
        cipher.init(true, new KeyParameter(key));

        byte[] cipherText = new byte[cipher.getOutputSize(input.length)];

        int outputLen = cipher.processBytes(input, 0, input.length, cipherText, 0);
        try {
            cipher.doFinal(cipherText, outputLen);
        } catch (CryptoException ce) {
            System.err.println(ce);
           System.exit(1);
        }
        return cipherText;
    }

    public static void main(String[] args) throws UnsupportedEncodingException {
        final String toEncrypt = "hola";
        final String encrypted = new String(Base64.encode(test(toEncrypt)),UTF8);
        System.out.println(encrypted);
    }

}

Ale kiedy uruchamiam mój kod, otrzymuję

QUrYzMVlbx3OK6IKXWq1ng==

a jeśli kodujeszhola w CAST-256 z tym samym kluczem (spróbuj tutaj, jeśli chceszhttp://www.tools4noobs.com/online_tools/encrypt/) powinienem dostać

w5nZSYEyA8HuPL5V0J29Yg==.

Co się dzieje? Dlaczego otrzymuję zaszyfrowany ciąg „wront”?

Jestem zmęczony znalezieniem tego w Internecie i nie znalazłem odpowiedzi.

questionAnswers(2)

yourAnswerToTheQuestion