rsa 암호화 클래스
급하게 메뉴얼 보고 클래스로 만들어보았습니다.
openssl이 사용 가능해야 사용됩니다.~
[code]
<?php
// http://php.net/manual/en/function.openssl-pkey-new.php
class TBRsa {
public $privateKey, $publicKey;
public function __construct($pubKey='', $privKey='') {
if($pubKey) $this->publicKey = $pubKey;
if($privKey) $this->privateKey = $privKey;
}
public function MakeKey() {
$res = openssl_pkey_new(array(
"digest_alg" => "sha256",
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA
));
openssl_pkey_export($res, $privKey);
$this->privateKey = $privKey;
$pubKey = openssl_pkey_get_details($res);
$this->publicKey = $pubKey['key'];
}
public function ViewKey() {
return array('publicKey'=>$this->publicKey, 'privateKey'=>$this->privateKey);
}
public function Encrypt($data) {
$pubKey = $this->publicKey;
if(!$pubKey) die('공개키를 입력하세요.');
openssl_public_encrypt($data, $encrypted, $pubKey);
return base64_encode($encrypted);
}
public function Decrypt($data) {
$privKey = $this->privateKey;
if(!$privKey) die('개인키를 입력하세요.');
$data = base64_decode($data);
openssl_private_decrypt($data, $decrypted, $privKey);
return $decrypted;
}
}
$pb = '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx0sWpnpwQ6tGZV0KGgpu
xTZXpretvCxuBWTxzZbC2hi86fz05f9PDtQHagHnn1bywNIieMOzbZ78Z/o178GV
dAVz3nZyC2LxRxDd1ylZLJz0HWiUxR0t35S04Smr83KBFS4FqNPKrz8jTF3VyEfp
rtC4+2YK7nEN4agD1prsaUUsnqEORm0Amyh8TXxNCfSbKazvDYhGTXyWXH6AzHPn
FyeNLo73DjibLRua8SvV0MjPjz2EUK/eRm7FzIBKSpOuGRITZBCHjYiHid6tJJ8G
XQIvVR7dhPwtIvNvDc985OB03eZmL3hJZD3N4JF/ivaNWcO6DU+6EPgvNealkADi
2QIDAQAB
-----END PUBLIC KEY-----'; // 공개키
$pv = '-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHSxamenBDq0Zl
XQoaCm7FNlemt628LG4FZPHNlsLaGLzp/PTl/08O1AdqAeefVvLA0iJ4w7Ntnvxn
+jXvwZV0BXPednILYvFHEN3XKVksnPQdaJTFHS3flLThKavzcoEVLgWo08qvPyNM
XdXIR+mu0Lj7ZgrucQ3hqAPWmuxpRSyeoQ5GbQCbKHxNfE0J9JsprO8NiEZNfJZc
foDMc+cXJ40ujvcOOJstG5rxK9XQyM+PPYRQr95GbsXMgEpKk64ZEhNkEIeNiIeJ
3q0knwZdAi9VHt2E/C0i828Nz3zk4HTd5mYveElkPc3gkX+K9o1Zw7oNT7oQ+C81
5qWQAOLZAgMBAAECggEBAIVgB2SbBI8FDTPBNIWA/ekWGUsGGkuZIHiTug/xGa6E
Z8ng9LUITIyL8fpMFAtbUVMiTtergWWXxSyBE5/FWpQvIgB8HI7qRLde3lik330v
/V/BIe9ZO94p03PtQ5rFwwW9qyP1uevWwXTWR8CmAApyvZniDObO2o9utkLlo9o+
tlzaLWPl4Thgfj+h2hdQJYVDFQ23offETMfikv7xHF78Giygu6BtcvP8n+4pyFyZ
fynCRakVsWZHcg1okpJrFprNqGPUJcrj20TyfctB9wFuqhAADkEirYESM318LHCl
HvbG5iSnAJrE+GPq7gNk++CDhZT+tTZoGyK/NAYUItECgYEA8BKwHf7+YCrBEw69
lZqrvNj6gMA82Rk9err8QB0fEBAu+iU96Zj83+yfbHcGi+4SEdJ/hOwq6qUuuqkZ
1ZtkYjoTenpBTpZ0uNWgjJIc80joaVkLaOY1mCdLye6AbyzbpJAsd6TlscFxWHVA
/Tt+6zIf0YE2fCgq0mL2wf7uZ1MCgYEA1IPQMWeztDljbUKSxHSeOGE5IS6c1uZH
EOndbeYyPmJHRTdu721KAAYYv0JQHZsTCIWof5hIj9JSFrycgRZkZ6SaI8vINX33
f42R22KICcQ+gE03xTUIGgQJxOw6PXtmndnwBX544UMXDqnvZcRNN1VhbV2K/7rT
AOnZpXrAY6MCgYEAvPqpAmPIz+C37Y2L9Wk0yUqwHou1GlyBBcyNZtbFrfpfUG/i
hbD1VjvI3zPuxlXYiYj+8p6Jxf3ThAI7IOfapGv9C0uTfw52wU0AvccC3QvGT69V
iPS2uZgtU77YASv5llgbeO8oFL4mwDBEwVKFPRVO8LdbMW7ZDpXykpFgD5sCgYAq
yyRIXpaMSyYfYVGGp+kYd1N2wBkrGRHkcQN61uj1MPsjEAeRxRMqsA+Zq/PQEmMh
yzBkCTlLZNHM7Ewjnmu3hyjW3nlBdE07bTma0NuOA+uGEIaTeptYCcoh0mPj7455
aOJxaMdUrRrehA/GEWJvKw1EZZrQ5kEJJQ4DyZUmOwKBgH7+lhffVhG67oPcqKAs
JdjP3rCDGckoZO6g7lONWiKzlgZHX8hb2SJjys6vW0+tE/1M3rdHG/Q/y5rV/IaK
vvIgKJy74uj6AJtbystK/1uqLmuVEYgN+5NJj9J2hSf30flel1xVOYxMQnjJ6LI7
cMxleiKYRi/4rc5OwKe3eVrK
-----END PRIVATE KEY-----'; // 개인키
$TE = new TBRsa($pb, $pv);
$en = $TE->Encrypt('와웅');
$dn = $TE->Decrypt($en);
echo $en.'<hr>';
echo $dn;
[/code]
게시판 목록
개발자팁
질문은 QA에서 해주시기 바랍니다.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 4586 | jQuery |
프로그래머7
|
8년 전 | 2088 | |
| 4585 | PHP | 8년 전 | 2159 | ||
| 4584 | PHP | 8년 전 | 2411 | ||
| 4583 | PHP | 8년 전 | 2355 | ||
| 4582 | jQuery |
프로그래머7
|
8년 전 | 1426 | |
| 4581 | jQuery |
프로그래머7
|
8년 전 | 1376 | |
| 4580 | jQuery |
프로그래머7
|
8년 전 | 1905 | |
| 4579 | PHP | 8년 전 | 2229 | ||
| 4578 | PHP | 8년 전 | 1740 | ||
| 4577 | PHP | 8년 전 | 2470 | ||
| 4576 | OS |
프로그래머7
|
8년 전 | 2698 | |
| 4575 | PHP | 8년 전 | 1924 | ||
| 4574 | PHP | 8년 전 | 1558 | ||
| 4573 | PHP | 8년 전 | 1966 | ||
| 4572 | PHP | 8년 전 | 2063 | ||
| 4571 | PHP | 8년 전 | 2416 | ||
| 4570 | PHP | 8년 전 | 2274 | ||
| 4569 | jQuery |
프로그래머7
|
8년 전 | 1866 | |
| 4568 | jQuery |
프로그래머7
|
8년 전 | 1402 | |
| 4567 | jQuery |
프로그래머7
|
8년 전 | 1967 | |
| 4566 | jQuery |
프로그래머7
|
8년 전 | 1897 | |
| 4565 | jQuery |
프로그래머7
|
8년 전 | 1648 | |
| 4564 | PHP | 8년 전 | 2578 | ||
| 4563 | PHP | 8년 전 | 1917 | ||
| 4562 | PHP | 8년 전 | 2428 | ||
| 4561 | jQuery |
프로그래머7
|
8년 전 | 1364 | |
| 4560 | jQuery |
프로그래머7
|
8년 전 | 1905 | |
| 4559 | jQuery |
프로그래머7
|
8년 전 | 1449 | |
| 4558 | node.js |
|
8년 전 | 3431 | |
| 4557 | jQuery |
프로그래머7
|
8년 전 | 1728 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기