
openssl_private_encrypt 함수는 개인키 암호화를 위해 사용됩니다. 이 함수의 인자 중 'data'는 바이너리 데이터를 받는 것으로 알고 있습니다. 따라서 데이터 파일(.txt)을 바이너리 데이터로 변환하여 암호화 하게 되면, 암호화 된 데이터를 복호화 하려고 할 때 오류가 발생하는 것을 깨닫게 됩니다.
개인키 암호화를 진행할 때, 데이터 파일(.txt)의 인코딩 방식은 UTF-8로 가정합니다. 바이너리 데이터로 변환하는 방법은 다음과 같습니다.
1. 데이터 파일(.txt)을 읽어들입니다.
2. 읽어들인 데이터를 바이너리 데이터로 변환합니다. PHP의 경우, bin2hex() 함수를 사용하여 바이너리 데이터를 16진수 문자열로 변환할 수 있습니다. 또는, fread() 함수를 사용하여 바이너리 데이터를 읽어들일 수 있습니다.
3. 바이너리 데이터를 openssl_private_encrypt 함수에 전달하여 개인키 암호화를 진행합니다.
다음은 예제입니다.
#hostingforum.kr
php
// 개인키 파일(.pem)과 데이터 파일(.txt)를 읽어들입니다.
$privateKey = file_get_contents('private_key.pem');
$data = file_get_contents('data.txt');
// 바이너리 데이터로 변환합니다.
$dataBinary = fread(fopen('data.txt', 'rb'), filesize('data.txt'));
// 개인키 암호화를 진행합니다.
$encryptedData = openssl_private_encrypt($dataBinary, $encryptedData, $privateKey, OPENSSL_PKCS1_PADDING);
// 암호화 된 데이터를 저장합니다.
file_put_contents('encrypted_data.txt', $encryptedData);
openssl_private_encrypt 함수를 사용하여 개인키 암호화를 진행할 때, 데이터 파일(.txt)의 인코딩 방식은 UTF-8로 가정합니다. 바이너리 데이터로 변환하는 방법은 위의 예제와 같습니다.
2025-04-17 15:50