반응형
PHP RSA 및 RSA2 암호화 코드
// An highlighted block
1024 rsa 공용 및 개인 키 쌍
2048 rsa2 공용 및 개인 키 쌍
pub_keyrsa 공용 키
pri_keyrsa 개인 키
붙이면 바로 사용 가능
function partPubEncrypt($decrypted='', $sign_type="rsa", $pub_key)
{
$piecewise=$sign_type=='rsa'?117:234;
$dataArray = str_split($decrypted,$piecewise);
$bContent = '';
foreach ($dataArray as $key => $subData) {
$bContent.= publicEncrypt($subData,$pub_key);
}
return base64_encode($bContent)
}
/**
* @param $decrypted
* @param $pub_key
* @return null
* 공개 키 암호화
* pub_key 공용 키
*/
function publicEncrypt($decrypted,$pub_key)
{
if (!is_string($decrypted) {
return null;
}
return (openssl_public_encrypt($decrypted, $encrypted, $pub_key))? $encrypted: null;
}
/**
* 단계별 비밀키 복호화
* @param string $encrypted
* @param string $sign_type
* @param string $pri_key
* @return String
*/
function partPrivDecrypt($encrypted='', $sign_type="rsa", $pri_key)
{
$piecewise=$sign_type=='rsa'?128:256;
$encrypted = base64_decode($encrypted);
$dataArray = str_split($encrypted, $piecewise);
$bContent = '';
foreach ($dataArray as $key => $subData) {
$bContent.= privDecryptNB64($subData,$pri_key);
}
return $bContent
}
/**
* 개인 키의 암호 해독하다
* @param $encrypted // 복호화 문자
* @param $pri_key 개인 키
* @return null
*/
function privDecryptNB64($encrypted,$pri_key)
{
if (!is_string($encrypted)) {
return null;
}
return (openssl_private_decrypt($encrypted, $decrypted, $pri_key))? $decrypted: null;
}
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
PHP에서의 오류 처리 약술 (0) | 2022.11.16 |
---|---|
PHP FPM 데이터 캐시 - 실용적인 메모리 테이블 (0) | 2022.11.16 |
php 읽기 ini 프로필 속성 (0) | 2022.11.09 |
php 작업 redis 예제 (0) | 2022.11.09 |
php 본문에 있는 모든 그림 가져오기 (0) | 2022.11.09 |