تشفير AES في Golang وفك التشفير في Java
فك تشفير النص المشفر AES في Java لفك تشفير النص المشفر AES الذي تم إنشاؤه بواسطة وظيفة Golang، يلزم تنفيذ Java. يوضح كود Java أدناه عملية فك التشفير:
public class AESDecryption { فك تشفير السلسلة الثابتة العامة (String base64Text، byte[] key) يطرح الاستثناء { byte[] inputArr = Base64.getUrlDecoder().decode(base64Text); SecretKeySpec skSpec = new SecretKeySpec(key, "AES"); تشفير التشفير = 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); بايت[] النتيجة = cipher.doFinal(dataToDecrypt); إرجاع سلسلة جديدة (نتيجة، StandardCharsets.UTF_8)؛ } public static void main(String[] args) { يحاول { String encryptedText = "c1bpFhxn74yzHQs-vgLcW6E5yL8zJfgceEQgYl0="; byte[] key = "0123456789abcdef".getBytes(); String decryptedText = decode(encryptedText, key); System.out.println("النص الذي تم فك تشفيره:" decryptedText); } قبض (الاستثناء ه) { printStackTrace(); } }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();
}
}
}
إصدار Scala
إصدار Scala رمز فك التشفير هو كما يلي:
object AESDecryption { فك التشفير (الإدخال: سلسلة، المفتاح: سلسلة): سلسلة = { تشفير فال = Cipher.getInstance("AES/CFB/NoPadding") فال بلوك سيز = cipher.getBlockSize() فال keyBytes = key.getBytes() فال inputArr = Base64.getUrlDecoder().decode(الإدخال) val skSpec = new SecretKeySpec(keyBytes, "AES") val iv = new IvParameterSpec(inputArr.slice(0, blockSize).toArray) فال dataToDecrypt = inputArr.slice(blockSize, inputArr.size) cipher.init(Cipher.DECRYPT_MODE، skSpec، iv) سلسلة جديدة (cipher.doFinal (dataToDecrypt.toArray)) } def main(args: Array[String]): الوحدة = { فال encryptedText = "c1bpFhxn74yzHQs-vgLcW6E5yL8zJfgceEQgYl0=" مفتاح فال = "0123456789abcdef" val decryptedText = فك التشفير (نص مشفر، مفتاح) println("نص تم فك تشفيره:" نص تم فك تشفيره) }
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)
}
}
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3