AES-Verschlüsselung in Golang und Entschlüsselung in Java
Entschlüsselung von AES-verschlüsseltem Text in Java
Um den von der Golang-Funktion generierten AES-verschlüsselten Text zu entschlüsseln, ist eine Java-Implementierung erforderlich. Der folgende Java-Code demonstriert den Entschlüsselungsprozess:
public class AESDecryption {
public static String decode(String base64Text, byte[] key) throws Exception {
byte[] inputArr = Base64.getUrlDecoder().decode(base64Text);
SecretKeySpec skSpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES/CFB/NoPadding");
int blockSize = cipher.getBlockSize();
IvParameterSpec iv = new IvParameterSpec(Arrays.copyOf(inputArr, blockSize));
byte[] dataToDecrypt = Arrays.copyOfRange(inputArr, blockSize, inputArr.length);
cipher.init(Cipher.DECRYPT_MODE, skSpec, iv);
byte[] result = cipher.doFinal(dataToDecrypt);
return new String(result, StandardCharsets.UTF_8);
}
public static void main(String[] args) {
try {
String encryptedText = "c1bpFhxn74yzHQs-vgLcW6E5yL8zJfgceEQgYl0=";
byte[] key = "0123456789abcdef".getBytes();
String decryptedText = decode(encryptedText, key);
System.out.println("Decrypted text: " decryptedText);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Dieser Java-Code sollte den von der Golang-Funktion generierten verschlüsselten Text erfolgreich entschlüsseln und den ursprünglichen Klartext zurückgeben.
Scala-Version
Die Scala-Version Der Entschlüsselungscode lautet wie folgt:
object AESDecryption {
def decode(input: String, key: String): String = {
val cipher = Cipher.getInstance("AES/CFB/NoPadding")
val blockSize = cipher.getBlockSize()
val keyBytes = key.getBytes()
val inputArr = Base64.getUrlDecoder().decode(input)
val skSpec = new SecretKeySpec(keyBytes, "AES")
val iv = new IvParameterSpec(inputArr.slice(0, blockSize).toArray)
val dataToDecrypt = inputArr.slice(blockSize, inputArr.size)
cipher.init(Cipher.DECRYPT_MODE, skSpec, iv)
new String(cipher.doFinal(dataToDecrypt.toArray))
}
def main(args: Array[String]): Unit = {
val encryptedText = "c1bpFhxn74yzHQs-vgLcW6E5yL8zJfgceEQgYl0="
val key = "0123456789abcdef"
val decryptedText = decode(encryptedText, key)
println("Decrypted text: " decryptedText)
}
}
Dieser Scala-Code entschlüsselt auch den AES-verschlüsselten Text und druckt den Klartext.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3