首页 > 编程语言 >php使用openssl生成公钥私钥

php使用openssl生成公钥私钥

时间:2024-03-14 12:34:28浏览次数:18  
标签:公钥 私钥 res openssl private key

1、确保你的 PHP 环境已经启用了 OpenSSL 扩展

    $config = array(
        "digest_alg" => "sha1",
        "private_key_bits" => 1024,
        "private_key_type" => OPENSSL_KEYTYPE_RSA,
        "config" => 'C:\phpstudy_pro\Extensions\Apache2.4.39\conf\openssl.cnf',
    );
    // 创建一个新的私钥和公钥对
    $res = openssl_pkey_new($config);
    // 检查是否成功生成密钥对
    if ($res === false) {
        die("无法生成密钥对:" . openssl_error_string());
    }

    // 提取私钥
    openssl_pkey_export($res, $privateKey, NULL, $config); // <-- CONFIG ARRAY

    // 生成公钥
    $publicKey = openssl_pkey_get_details($res);
    $publicKey = $publicKey["key"];
    echo "私钥:<br/>" . $privateKey . "<br/>";
    echo "公钥:<br/>" . $publicKey . "<br/>";

    // 释放资源
    openssl_free_key($res);

2、使用 OpenSSL 命令生成 公钥和私钥

1. 生成 1024 位 RSA 私钥
  openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa\_keygen\_bits:1024
2. 从私钥中提取公钥
 openssl rsa -pubout -in private_key.pem -out public\_key.pem

标签:公钥,私钥,res,openssl,private,key
From: https://www.cnblogs.com/chengwens/p/18072596

相关文章

  • [密码学]OpenSSL实践篇
    背景最近在写Androidabl阶段fastboot工具,需要我在Android代码中实现一些鉴权加解密相关的fastboot命令,里面用到了OpenSSL。我们先来实践一下OpenSSL在Linux系统中的指令。OpenSSL官方网站:OpenSSL中文手册|OpenSSL中文网1.查看openssl版本opensslversion#完整版......
  • 使用SSH公钥进行免密码登录Linux服务器
    ​SSH公钥在同步和自动化脚本中提供了许多好处。免密码登录:通过使用公钥认证,您可以实现无需输入密码即可登录到远程服务器。这对于自动化脚本和定期的同步任务非常有用,因为它允许在不人工干预的情况下自动完成这些任务。安全性:公钥和私钥的使用提高了安全性。与密码相比,私钥......
  • 【教程】uni-app iOS打包解决profile文件与私钥证书不匹配问题
    摘要当在uni-app中进行iOS打包时,有时会遇到profile文件与私钥证书不匹配的问题。本文将介绍如何解决这一问题,以及相关的技术细节和操作步骤。引言在uni-app开发过程中,iOS打包是一个常见的操作。然而,有时会出现profile文件与私钥证书不匹配的错误提示,导致打包失败。为了解决这一......
  • 编译opencapwap 编译环境加密库openssl版本调整
    1、删除原来版本:sudoapt-getremovelibssl1.0-devlibssl-dev删除链接:删除/bin/openssl2、下载版本wget--no-check-certificatehttps://www.openssl.org/source/old/1.0.0/openssl-1.0.0.tar.gz解压安装:tar-xzvf./openssl-OpenSSL_1_0_2t.tar.gzcdopenssl-OpenSSL......
  • C# 与JAVA 的RSA 加密解密交互,C#使用BouncyCastle来实现私钥加密,公钥解密的方法
    因为一般C#的RSA加密解密都是公钥加密,私钥解密,没有私钥加密,公钥解密。在网上查了很多资料,终于看到有个博主的分享,关于私钥加密,公钥解密的解决方案,非常感谢(最下面有源网址)。此处就把简单应用的源码附上,需要的自己去完善。 1、私钥加密,公钥解密的源码usingOrg.BouncyCastle.......
  • openssl 生成证书 server.key server.crt
    为了https,做一个免费的证书。x509证书一般会用到三类文,key,csr,crt。Key是私用密钥,通常是rsa算法。Csr是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署......
  • QT使用OpenSSL的接口实现RSA2的签名和验签
    QT使用OpenSSL的接口实现RSA2的签名和验签加密和签名在RSA加密算法中是两个不同的概念,虽然它们都涉及RSA密钥对的使用,但目的和应用场景有所不同。加密(encrypt/decrypt):加密:使用接收方的公钥对数据进行加密,只有拥有相应私钥的接收方才能解密数据。解密:使用接收方的私钥对......
  • openssh漏洞修复之升级openssh与openssl
    下载Openssh和Opensslwgetftp://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/wgethttps://www.openssl.org/source/openssl-1.1.1h.tar.gz安装Openssltar-zxfopenssl-1.1.1h.tar.gzcdopenssl-1.1.1h./config--prefix=/usr/local/openssl-1.1.1-dsharedmake......
  • openssl pkcs12 -info -in certificate.pfx
    通用名称(CommonName):也称为主题名称(SubjectName),是证书中代表个人身份的主要标识。通常会包含个人的姓名或特定名称。组织(Organization):证书中列出的个人所属的组织或单位名称。部门(Department):可选字段,用于指定个人所属的部门或单位的名称。城市(City):个人所在城市的名称......
  • 生成DKIM的公钥和私钥
    生成一个公钥和私钥可以使用下述网站生成公钥和私钥(当然,使用外部网站来生成公钥和私钥是不安全的,建议仅作为测试时使用)https://easydmarc.com/tools/dkim-record-generator 通过证书生成一个公钥和私钥     使用OpenSSL创建证书          1.......