如何在PHP中使用openssl 扩展实现公钥加密

如下所示:

// 生成私钥
# openssl genrsa -out rsa_private_key.pem 1024
// 生成公钥
# openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

下面是示例代码:

<?php
// openssl 扩展检测
var_dump(extension_loaded('openssl'));
$prikey = openssl_pkey_get_private(file_get_contents('rsa_private_key.pem')); //私钥
$pubkey = openssl_pkey_get_public(file_get_contents('rsa_public_key.pem')); //公钥
// 明文数据
$data = 'test-string!';
/**
 * 可能会出的问题:Don't know how to get public key from this private key
 * 原因:PHP 的 openssl 扩展和 Apache 的不一致导致, 当然在命令行下运行程序则不会出现此问题
 */
// 公钥加密
$encrypt_data = '';
openssl_public_encrypt($data, $encrypt_data, $pubkey);
$encrypt_data = base64_encode($encrypt_data);
echo $encrypt_data;
echo '<br/>';
// ------------------------------------------------------------
// 私钥解密
$encrypt_data = base64_decode($encrypt_data);
openssl_private_decrypt($encrypt_data, $decrypt_data, $prikey);
var_dump($decrypt_data);

原创文章,作者:KLMPX,如若转载,请注明出处:https://www.wangzhanshi.com/n/16420.html

(0)
KLMPX的头像KLMPX
上一篇 2025年1月2日 12:39:14
下一篇 2025年1月2日 12:39:16

相关推荐

  • SSL证书原理是什么

    SSL证书的工作原理是怎么样的? 随着数字信息时代的高速发展,现在似乎已经到了一个全民上网的时代,而网络安全往往是人们重视的问题。一般在互联网的信息交互中,SSL证书就起着至关重要…

    2025年1月2日
  • SSL证书可以给多个域名使用的方法

    为了推广宣传自己的产品、展示企业正面形象、联系到更多的经营业务,现在很多企业都建设有自己的网站,而不少企业,由于经营业务的多样性,所建立的网站、拥有的域名也不止一个。为了增加企业的…

    2025年1月2日
  • 网站证书的用处是什么

    网站证书的用处是什么?当下我们的生活和网络已经分不开了,网络给我们的生活提供了很多的便利,但是网络诈骗、数据泄露等信息,也让很多的人对网络产生了不信任,也是因为这些原因,很多人都感…

    2025年1月2日
  • 关于SSL协议的详细说明

    什么是SSL协议? SSL就像驾照和营业执照这样的电子证书的副本,在网站中对机密文件有保密作用。SSL的主要作用是为用户和服务器提供认证;对传送的数据进行加密和隐藏;确保数据在传送…

    2025年1月2日
  • php的mcrypt扩展已废弃问题解决

    php 的 mcrypt_ 函数簇在 7.1.0 版本中开始 deprecated,并在 7.2.0 版本中彻底废弃。如果当前项目存在mcrypt_ encrypt这种函数又想更新…

    ssl证书 2025年1月2日
  • OpenSSL中的加密算法指令有哪些

    OpenSSL是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库、应用程序、SSL协议库。Openssl实现了SSL协议所需要的大多数算法。下面介绍使用Open…

    ssl证书 2025年1月2日
  • 域名证书类型有哪些?

    当下用户进行SSL证书的申请,对证书的选择也需要重视,一般情况下,一个SSL证书会保证一个网站的域名,当然也有些网站的域名数量是比较多的,大家进行域名证书的申请,也需要了解这些方面…

    2025年1月20日
  • ssl证书价格贵吗?有什么申请要求

    ssl证书价格贵吗?有什么申请要求?很多人都不太了解,今天小编为了让大家更加了解ssl证书,所以给大家总结了以下内容,一起往下看吧。 因为,ssl证书的安全性高,所以,如今有越来越…

    2025年1月2日
  • openssl做一个CA(1)

           SSL,Security Socket Layer,是一个安全传输协议,在Internet网上进行数据保护和身份确认…

    2025年1月2日
  • 如何在PHP中使用openssl实现一个非对称加密

    使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。 1.安装openssl和php的openssl扩展 2.生成私钥:openssl g…

    ssl证书 2025年1月2日

发表回复

登录后才能评论