php基于openssl的rsa加密解密示例

前端之家收集整理的这篇文章主要介绍了php基于openssl的rsa加密解密示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP基于openssl的rsa加密解密。分享给大家供大家参考,具体如下:

PHP;"> "D:/PHPserver/Lighttpd/openssl.cnf",//'config' =>'D:/PHPStudy/Lighttpd/OpenSSL.cnf','private_key_bits' => 1024,// Size of Key. 'private_key_type' => OPENSSL_KEYTYPE_RSA ); //$res = openssl_pkey_new(); $res = openssl_pkey_new($config); // Get private key // openssl_pkey_export($res,$privkey,"PassPhrase number 1" ); openssl_pkey_export($res,$privkey); var_dump($privkey); // Get public key $pubkey=openssl_pkey_get_details($res); // echo "------------>
"; // print_r($pubkey["rsa"]); // $bin_str=$pubkey["rsa"]["n"]; // print_r($bin_str); // echo "
"; // //echo $bin_hex_str = pack("H*",bin2hex($bin_str)); // echo $bin_hex_str = bin2hex($bin_str); // echo "
------------<
"; $pubkey=$pubkey["key"]; // var_dump($privkey); // var_dump($pubkey); echo $privkey."

"; echo $pubkey."

"; ?>
PHP;"> PHP $private_key = '-----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDNSQ4AmPZE01MpEO9dabRDsS0XwxKekEFUoWJneFG+NA6P52Js ISw79QYNfQwM7akIaPpzU0+kkWjTSXiDqFUv5y2vaA3W2Tre5N51uCwUK6/LfzHX Bg0d+Bnlzy6Kb6bpgPgvbhAkNbvjbCS0V9h4v3WUTLR9QauJ05Q8qe70sQIDAQAB AoGAb/9aZ1MMkNImfbIilXk1AvVn353qy51yNyTxFfhbyISIKVSYqtuSUYfFbJh7 eZYz8UWs1jxuqB847IUZ/eJZzpVev480Tv9YejN0DhJ4Yw6y/kpJWo/9kEcET6Tk vatXh+wgmieszkxe0kUvk41GPV7a4GWWQj6P4vjx+qktaNECQQDuo7ENW10dZXLG YNKqUhgkdi9NPjRlHCgZ4RW0uoRqUsggqNVkaqpY8BaJOkkXWiQ0aVTPBiwo8k0+ S50rGNYNAkEA3DgxY9OwRc65VqS/UxV28pyLe2gy0XSVwA97SVNvYJJ58iNGEvYs vEZ3GrTNAZpbPKcruCS6NiDK761Ot5A0NQJAOsRO1pY4QQP5lsbDOjRLQ7djAKef 6YJckbrvSHliIHjQVdKd8kOePZaqRhL3auvE3K9Ptkez2kWJJh0i0DkmhQJBAMCm F+7wnWA0PEbj0MvqFyiechb/TJWXm/lskbnP17tv6GY/HWoxGWmLa15dlIo2cmJZ DBIHby8y+NU7k4VaDZECQQCO018O5TJWl+O+bWyzV1eR603YP+JVjiSKUPtuyzVS NIz+ClwspGmdUwPWlLqr5JfKm+OfpaLIepfJinsCgwpP -----END RSA PRIVATE KEY-----'; //$private_key ='-----BEGIN RSA PRIVATE KEY----- //MIICXAIBAAKBgQDVFOcE2nEBi+4FYvS36j1ShHHvusR0dXXe9NzAA/biH6NODywH //cQo2Lyco6oSvY+cSsPewjjyatRCtq/Ri6c/am64CJu+HM1lZH1Gh05C2KVJ2dveX //gcdsz+/XPHDxYKAq/hW9S1NeYr2x4eJdpYNYucLn8XWgeLRnlJUnBl/saQIDAQAB //AoGAK2oz28hKKB+DorNT2zktv2de85JhPr1EA+ZuJ+1m2xHJKzlqJiYBB6M53ltS //J446YZOPE/kXHgpwWIJlq9Wp1KiZPEfoRWzz1wmuj8koq95vcxBeuyjX4ez4dio6 //Vmr9BABFuoAh0GAq8kTJOz0DURCEcwv+iI7ILaNoRjPFWuUCQQDveqRLE2/N8NIy //P7YVnniAiaSL/e+XYQXCMIDsdEdqZNRjhjfDoBqpV/tGjnuAn9zBVHNNLbLni5nf //2nqgrh5jAkEA48gQmBO9koOnvO//Q581JSBKfga4i7DetQ80OD4kYt6fwezkaeHX //k64sjmpfD/Ys2heKFhyNDO/k0NsUxGlNwwJBAKPx7/u9qLLyBNSFrWALhy9oC5AT //Hi0iLNEOZ5R43lNGB+jCf/aa6uW357wb2wzpZDWuXOkfOfUuKv+HEKBj00UCQCxd //woWsiqcoB5rwcBrevr49fOTxMC7dQ3Omw3gU+odbb2iZWKAbAh9ctIcExwFX5MKS //BS5rXzne3AWmNnRPQnsCQDdOCBxkF5YctHqlmEETfKodVZG69COZGykdlenOxK6g //qNNAT2y2mxInYGlPIJ+TfxxFIqesHdph4s/lw6T2ISY= //-----END RSA PRIVATE KEY-----'; $public_key = '-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNSQ4AmPZE01MpEO9dabRDsS0X wxKekEFUoWJneFG+NA6P52JsISw79QYNfQwM7akIaPpzU0+kkWjTSXiDqFUv5y2v aA3W2Tre5N51uCwUK6/LfzHXBg0d+Bnlzy6Kb6bpgPgvbhAkNbvjbCS0V9h4v3WU TLR9QauJ05Q8qe70sQIDAQAB -----END PUBLIC KEY-----'; //$private_key=$privkey; //$public_key=$pubkey; $fp=fopen("private_key","w"); fwrite($fp,$private_key); fclose($fp); $fp=fopen("public_key",$public_key); fclose($fp); //echo $private_key; $pi_key = openssl_pkey_get_private($private_key);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource id $pu_key = openssl_pkey_get_public($public_key);//这个函数可用来判断公钥是否是可用的 print_r($pi_key);echo "\n"; print_r($pu_key);echo "\n"; echo "
----------------------
"; $data = "woshizhu";//原始数据 $encrypted = ""; $decrypted = ""; echo "source data:",$data,"
"; echo "private key encrypt:\n"; openssl_private_encrypt($data,$encrypted,$pi_key);//私钥加密 $encrypted = base64_encode($encrypted);//加密后的内容通常含有特殊字符,需要编码转换下,在网络间通过url传输时要注意base64编码是否是url安全的 echo "
----------私钥加密------------
"; echo $encrypted,"
"; echo "
----------私钥加密------------
"; echo "public key decrypt:\n"; $decrypted=""; openssl_public_decrypt(base64_decode($encrypted),$decrypted,$pu_key);//私钥加密的内容通过公钥可用解密出来 echo $decrypted,"\n"; echo "---------------------------------------\n"; echo "public key encrypt:\n"; openssl_public_encrypt($data,$pu_key);//公钥加密 $encrypted = base64_encode($encrypted); echo $encrypted,"\n"; $decrypted=""; //$encrypted="JBeapcp9iWWYJYElgqtrZxfxM4wVkCaSn/oJZ7NjfR23o76fdbxEXpf+PGWACw3PeTdObwL4108wR3ihKmy2iYkIExGjBYyvx2w9aHies8ZsOIP3LjiMHYTm93Rr8Sc5XxHWQc3Dhbq16JWHYZ2d+RrOpHd4x84GF3JXwivrGO4="; echo "private key decrypt:\n"; openssl_private_decrypt(base64_decode($encrypted),$pi_key);//私钥解密 echo "--->:".$decrypted,"\n"; ?>

密码安全性在线检测:

高强度密码生成器:

http://tools.jb51.cc/password/Createh3Password

MD5在线加密工具:

http://tools.jb51.cc/password/CreateMD5Password

迅雷、快车、旋风URL加密/解密工具:

http://tools.jb51.cc/password/urlrethunder

在线散列/哈希算法加密工具:

http://tools.jb51.cc/password/hash_encrypt

更多关于PHP相关内容可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《

希望本文所述对大家PHP程序设计有所帮助。

猜你在找的PHP相关文章