生成 公钥私钥 笔记

生成非对称加密的公钥和私钥的过程记录。

使用 OpenSSL 生成私钥和公钥密钥对,最常用的是 RSA 算法,基本流程分为两步:

  • 首先生成私钥
  • 然后从私钥中提取出公钥

核心步骤:生成 RSA 密钥对

  1. 生成 RSA 私钥

    在终端中执行以下命令:

    bash 复制代码
    openssl genrsa -out private_key.pem 2048
    • genrsa:这是生成 RSA 私钥的命令。
    • -out private_key.pem:指定输出的私钥文件名
    • 2048:指定密钥的长度(位数)。2048位是当前广泛接受的安全标准,你也可以根据需要选择 4096 以获得更高安全性
  2. 生成对应的公钥

    使用上一步生成的私钥文件来提取公钥:

    bash 复制代码
    openssl rsa -in private_key.pem -pubout -out public_key.pem
    • rsa:这是处理 RSA 密钥的命令。
    • -in private_key.pem:指定输入的私钥文件
    • -pubout:指示命令输出公钥
    • -out public_key.pem:指定输出的公钥文件名

执行完成后,你会得到两个文件:private_key.pem(私钥)和 public_key.pem(公钥)

其他密钥类型

除了 RSA,OpenSSL 也支持生成其他类型的密钥对。

  • 生成 EC(椭圆曲线)密钥对

    EC 密钥在提供相同安全级别时,通常比 RSA 密钥更短、效率更高。

    1. 生成私钥 (以 secp256k1 曲线为例):

      bash 复制代码
      openssl ecparam -name secp256k1 -genkey -noout -out private_key.pem

    2. 生成公钥

      bash 复制代码
      openssl ec -in private_key.pem -pubout -out public_key.pem

  • 生成 DSA(数字签名算法)密钥对

    DSA 通常用于数字签名。

    1. 生成 DSA 参数

      bash 复制代码
      openssl dsaparam -out dsaparam.pem 2048
    2. 生成私钥

      bash 复制代码
      openssl gendsa -out private_key.pem dsaparam.pem
    3. 生成公钥

      bash 复制代码
      openssl dsa -in private_key.pem -pubout -out public_key.pem

重要注意事项

  • 私钥安全 :私钥是身份和所有权的核心凭证,必须严格保密 ,绝不要分享给任何人

  • 文件权限 :为确保安全,建议将私钥文件的权限设置为仅所有者可读写(例如在 Linux/macOS 上使用命令 chmod 600 private_key.pem

  • 密码保护(可选) :生成私钥时,可以为其添加密码保护,防止私钥文件被盗用。如需此功能,可以在 genrsa 命令中加入 -aes256 选项。

    bash 复制代码
    openssl genrsa -aes256 -out private_key.pem 2048

    执行此命令后,系统会提示你输入并确认一个密码。

相关推荐
先吃饱再说14 小时前
从“地狱”到“楼梯”再到“同步写法”:Node.js 异步的二十年与Node内置fs模块详解
node.js
知识收割者14 小时前
Nodejs也能写Agent - 10.LangChain篇 - 初识LangChain
node.js
HjhIron15 小时前
Node.js 内置模块之 path 与 fs:从路径拼接到异步演进
node.js·promise
触底反弹16 小时前
🚀 Node.js path 和 fs 模块,从回调地狱到 async/await 的进化之路!
javascript·后端·node.js
sugar__salt16 小时前
Node.js path 与 fs 核心模块完全指南 —— 从路径处理到异步流程控制
javascript·node.js
屑曦晨17 小时前
npm 全局包迁移指南:从系统目录到用户目录
npm·node.js
moMo18 小时前
Node.js 文件操作:path 路径与 fs 异步流程
node.js
拾年27518 小时前
Node.js 异步进化论:从 path 路径拼接到 fs 文件读取,我终于理解了回调地狱的救赎之路
前端·node.js
小粉粉hhh19 小时前
Node.js(五)——编写接口
前端·javascript·node.js
先吃饱再说1 天前
别再手动拼接路径了!Node.js path 模块的 9 个核心 API 详解
node.js