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:
<code class="java">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(); } } }</code>
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 des Entschlüsselungscodes lautet wie folgt:
<code class="scala">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) } }</code>
Dieser Scala-Code entschlüsselt auch den AES-verschlüsselten Text und druckt den Klartext.
Das obige ist der detaillierte Inhalt vonWie entschlüssele ich mit Java und Scala in Golang generierten AES-verschlüsselten Text?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!