디코딩 java 소스 php 코드로 아시는 분 계실까요? 채택완료

위 자바 소스인데 php로 디코딩이 잘 안되서 아시는분 계시면 답변 부탁드려요


Copy
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개

채택된 답변
+20 포인트

자바를 php 로 변경원하는건가요?

Copy
<?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 친구가 이렇게 답변을 주긴 했습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고