Heim >Backend-Entwicklung >Golang >Wie entschlüssele ich mit Java und Scala in Golang generierten AES-verschlüsselten Text?

Wie entschlüssele ich mit Java und Scala in Golang generierten AES-verschlüsselten Text?

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 20:02:02825Durchsuche

How to decrypt AES encrypted text generated in Golang using Java and Scala?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn