Golang의 AES 암호화 및 Java의 암호 해독
Java의 AES 암호화 텍스트 해독
Golang 함수로 생성된 AES 암호화된 텍스트를 해독하려면 Java 구현이 필요합니다. 아래 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();
}
}
}
이 Java 코드는 Golang 함수에 의해 생성된 암호화된 텍스트를 성공적으로 해독하고 원래 일반 텍스트를 반환해야 합니다.
Scala 버전
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)
}
}
이 Scala 코드는 AES 암호화된 텍스트를 해독하고 일반 텍스트를 인쇄합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3