Penyulitan AES dalam Golang dan Penyahsulitan dalam Java
Menyahsulit Teks Disulitkan AES dalam Java
Untuk menyahsulit teks yang disulitkan AES yang dijana oleh fungsi Golang, pelaksanaan Java diperlukan. Kod Java di bawah menunjukkan proses penyahsulitan:
<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>
Kod Java ini sepatutnya berjaya menyahsulit teks yang disulitkan yang dijana oleh fungsi Golang dan mengembalikan teks biasa asal.
Versi Scala
Versi Scala kod penyahsulitan adalah seperti berikut:
<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>
Kod Scala ini juga akan menyahsulit teks yang disulitkan AES dan mencetak plaintext.
Atas ialah kandungan terperinci Bagaimana untuk menyahsulit teks yang disulitkan AES yang dihasilkan di Golang menggunakan Java dan Scala?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!