디코딩 java 소스 php 코드로 아시는 분 계실까요?
본문
위 자바 소스인데 php로 디코딩이 잘 안되서 아시는분 계시면 답변 부탁드려요
String tKey = getKeyValue(type);
SecretKeySpec skeySpec = new SecretKeySpec(tKey.getBytes(), "AES");
String originalString = "";
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] byteStr = Base64.decodeBase64(data.getBytes("UTF-8"));
// Decrypted
cipher.init(Cipher.DECRYPT_MODE, skeySpec, new IvParameterSpec(IV.getBytes("UTF-8")));
byte[] original = cipher.doFinal(byteStr);
originalString = new String(original);
답변 1
자바를 php 로 변경원하는건가요?
<?php
function decryptData($data, $type, $IV) {
// AES key 생성
$tKey = getKeyValue($type);
$skeySpec = substr($tKey, 0, 32); // PHP에서는 키 길이를 32바이트로 맞춰야 함
// Base64 디코딩
$byteStr = base64_decode($data);
// AES/CBC/PKCS5Padding 복호화
$cipher = "AES-256-CBC"; // AES-256-CBC 모드 사용
$iv = substr($IV, 0, 16); // IV는 16바이트 길이로 맞춤
// 복호화
$decrypted = openssl_decrypt($byteStr, $cipher, $skeySpec, OPENSSL_RAW_DATA, $iv);
return $decrypted;
}
// 사용 예시
$data = "암호화된 데이터";
$type = "type_value";
$IV = "initialization_vector";
echo decryptData($data, $type, $IV);
?>
일단 gpt 친구가 이렇게 답변을 주긴 했습니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.