2012-01-10 3 views
2

PHP 5.3을 사용하여 데이터에 액세스 할 때 어떻게 openssl을 사용할 수 있습니까?PHP 5.3에서 openssl 사용

사용 방법을 알기를 바랍니다. OpenSSL을 사용하여 데이터에 액세스하는 방법을 보여주십시오.

+0

PHP 응용 프로그램이 웹 사이트 인 경우; 당신은 단지'https : // yourwebsite.com'을 사용할 수 있습니다. (HTTP상의 S를 참고하십시오) – Icarus

+1

이 게시물은 다음과 중복되는 것으로 생각합니다 : http://stackoverflow.com/questions/4176367/openssl-php-how-to- implement-it – mosid

답변

1

php로 키 쌍을 생성 하시겠습니까?

$NEW_KEY = openssl_pkey_new(array(
    'private_key_bits' => 1024, 
    'private_key_type' => OPENSSL_KEYTYPE_RSA, 
     )); 

openssl_pkey_export_to_file($NEW_KEY, 'private.key'); 

$NEW_KEY_DETAILS = openssl_pkey_get_details($NEW_KEY); 
file_put_contents('public.key', $NEW_KEY_DETAILS['key']); 

openssl_free_key($NEW_KEY); 

이미 키가 있습니까?

$public = "-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDfmlc2EgrdhvakQApmLCDOgP0n 
NERInBheMh7J/r5aU8PUAIpGXET/8+kOGI1dSYjoux80AuHvkWp1EeHfMwC/SZ9t 
6rF4sYqV5Lj9t32ELbh2VNbE/7QEVZnXRi5GdhozBZtS1gJHM2/Q+iToyh5dfTaA 
U8bTnLEPMNC1h3qcUQIDAQAB 
-----END PUBLIC KEY-----"; 

$private = "-----BEGIN RSA PRIVATE KEY----- 
MIICXAIBAAKBgQDfmlc2EgrdhvakQApmLCDOgP0nNERInBheMh7J/r5aU8PUAIpG 
XET/8+kOGI1dSYjoux80AuHvkWp1EeHfMwC/SZ9t6rF4sYqV5Lj9t32ELbh2VNbE 
/7QEVZnXRi5GdhozBZtS1gJHM2/Q+iToyh5dfTaAU8bTnLEPMNC1h3qcUQIDAQAB 
AoGAcbh6UFqewgnpGKIlZ89bpAsANVckv1T8I7QT6qGvyBrABut7Z8t3oEE5r1yX 
UPGcOtkoRniM1h276ex9VtoGr09sUn7duoLiEsp8aip7p7SB3X6XXWJ9K733co6C 
dpXotfO0zMnv8l3O9h4pHrrBkmWDBEKbUeuE9Zz7uy6mFAECQQDygylLjzX+2rvm 
FYd5ejSaLEeK17AiuT29LNPRHWLu6a0zl923299FCyHLasFgbeuLRCW0LMCs2SKE 
Y+cIWMSRAkEA7AnzWjby8j8efjvUwIWh/L5YJyWlSgYKlR0zdgKxxUy9+i1MGRkn 
m81NLYza4JLvb8/qjUtvw92Zcppxb7E7wQJAIuQWC+X12c30nLzaOfMIIGpgfKxd 
jhFivZX2f66frkn2fmbKIorCy7c3TIH2gn4uFmJenlaV/ghbe/q3oa7L0QJAFP19 
ipRAXpKGX6tqbAR2N0emBzUt0btfzYrfPKtYq7b7XfgRQFogT5aeOmLARCBM8qCG 
tzHyKnTWZH6ff9M/AQJBAIToUPachXPhDyOpDBcBliRNsowZcw4Yln8CnLqgS9H5 
Ya8iBJilFm2UlcXfpUOk9bhBTbgFp+Bv6BZ2Alag7pY= 
-----END RSA PRIVATE KEY-----"; 

if (!$privateKey = openssl_pkey_get_private($private)) die('Loading Private Key failed'); 
if (!$publicKey = openssl_pkey_get_public($public)) die('Loading Public Key failed'); 

$encrypted = ''; 
$decrypted = ''; 

$plaintext = 'This is just some text to encrypt'; 

echo '<p>$plaintext = ' . $plaintext . '<p>'; 

if (!openssl_public_encrypt($plaintext, $encrypted, $publicKey)) die('Failed to encrypt data'); 

echo '<p>$encrypted = ' . $encrypted . '<p>'; 

if (!openssl_private_decrypt($encrypted, $decrypted, $privateKey)) die('Failed to decrypt data'); 

echo '<p>$decrypted = ' . $decrypted . '<p>'; 

자, 가서 즐기십시오!

+0

여러 질문에 대한 상용구/축 어적 인 답변을 복사하여 붙여 넣을 때는 커뮤니티에서 "스팸성"으로 표시되는 경향이 있으므로주의하십시오. 이 작업을 수행하는 경우 대개 질문이 중복되므로 대신 해당 질문에 플래그를 지정해야합니다. http://stackoverflow.com/questions/4176367 – Kev

+0

네, 네가 맞아. 다음에 그렇게 할거야. – Tieme

관련 문제