システム: centos6.5
Linux システムで公開鍵と秘密鍵のペアを生成する方法:
openssl genrsa -out rsa_private_key.pem 1024
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
最初のコマンドは、元の RSA 秘密鍵ファイル rsa_private_key.pem を生成します。 2 番目のコマンドは、元の RSA 秘密鍵が pkcs8 形式に変換され、3 番目の項目で RSA 公開鍵が生成されます。 rsa_public_key.pem
コードは次のとおりです:
公開鍵暗号化 private鍵復号化
$source='abcde'; $pkeyid=file_get_contents(DIR_BASE.'/rsa_key/rsa_public_key.pem', 'r'); $res = openssl_get_publickey($pkeyid); openssl_public_encrypt($source,$crypttext,$res); echo $crypttext; $pkeyid=file_get_contents(DIR_BASE.'/rsa_key/rsa_private_key.pem', 'r'); $res2 = openssl_get_privatekey($pkeyid); if(openssl_private_decrypt($crypttext,$data,$res2)){ echo $data; }else{ echo "false"; }
秘密鍵暗号化 公開鍵復号化
$source='abcde'; $pkeyid=file_get_contents(DIR_BASE.'/rsa_key/rsa_private_key.pem', 'r'); $res = openssl_get_privatekey($pkeyid); openssl_private_encrypt($source,$crypttext,$res); echo $crypttext; $pkeyid=file_get_contents(DIR_BASE.'/rsa_key/rsa_public_key.pem', 'r'); $res2 = openssl_get_publickey($pkeyid); if(openssl_public_decrypt($crypttext,$data,$res2)){ echo $data; }else{ echo "false"; }