Verschlüsselung mit Java BouncyCastle Cast6Engine (CAST-256)
Ich versuche, eine Funktion zu implementieren, die eine Zeichenfolge empfängt und die codierten Werte der Zeichenfolge in CAST-256 zurückgibt. Der folgende Code ist das, was ich gemäß dem Beispiel auf der offiziellen BoncyCastle-Webseite implementiere (http://www.bouncycastle.org/specifications.html 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);
}
}
Aber wenn ich meinen Code starte, bekomme ich
QUrYzMVlbx3OK6IKXWq1ng==
und wenn du codiersthola
in CAST-256 mit demselben Schlüssel (versuchen Sie es hier, wenn Sie möchtenhttp://www.tools4noobs.com/online_tools/encrypt/) Ich sollte bekommen
w5nZSYEyA8HuPL5V0J29Yg==
.
Was ist los? Warum bekomme ich eine falsch verschlüsselte Zeichenfolge?
Ich bin es leid, das im Internet zu finden und habe keine Antwort gefunden.