PHP PKCS1 非对称加密解密 key为一行的处理方式

    xiaoxiao2022-07-06  223

    <?php $private_key = '这是一行私钥'; $search = [ "-----BEGIN RSA PRIVATE KEY-----", "-----END RSA PRIVATE KEY-----", "\n", "\r", "\r\n" ]; $private_key=str_replace($search,"",$private_key); $private_key=$search[0] . PHP_EOL . wordwrap($private_key, 64, "\n", true) . PHP_EOL . $search[1]; //echo $private_key;die; $public_key = '这是一行公钥'; $search = [ "-----BEGIN PUBLIC KEY-----", "-----END PUBLIC KEY-----", "\n", "\r", "\r\n" ]; $public_key=str_replace($search,"",$public_key); $public_key=$search[0] . PHP_EOL . wordwrap($public_key, 64, "\n", true) . PHP_EOL . $search[1]; $pi_key = openssl_pkey_get_private($private_key);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource id $pu_key = openssl_pkey_get_public($public_key);//这个函数可用来判断公钥是否是可用的 $data = "123456";//原始数据 $encrypted = ""; $decrypted = ""; openssl_public_encrypt($data,$encrypted,$pu_key,OPENSSL_PKCS1_PADDING);//公钥加密 $encrypted = base64_encode($encrypted); echo $encrypted,"\n"; echo "private key decrypt:\n"; openssl_private_decrypt(base64_decode($encrypted),$decrypted,$pi_key,OPENSSL_PKCS1_PADDING);//私钥解密 echo $decrypted."\n";

     

    最新回复(0)