生成 公钥私钥 笔记

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

使用 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

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

相关推荐
风尘小子5 天前
node.js系列:process配置
前端·node.js
怕浪猫5 天前
ZCode 开源了来看看这是个什么东西
node.js·github·代码规范
flash俊杰5 天前
Electron 打包后窗口 30 秒不出现:一个 ABI 不匹配的血案
electron·node.js
@tangguo1236 天前
npm 和 yarn 配置说明
前端·javascript·npm·node.js·yarn
flash俊杰6 天前
一套代码接入所有大模型:OpenAI 兼容适配器设计
node.js·openai
右耳朵猫AI6 天前
Node.js周刊2026W38 | 进程中断缺陷修复、Copilot 迁至 Rust、Node 新增 VFS
javascript·后端·node.js
光影少年6 天前
Express 中间件原理
后端·node.js·express
时速GEO系统6 天前
初元 AI V1.1 版本升级,首个正式版发布一周・实现生成、部署、上线、优化全流程自动化闭环
人工智能·数据挖掘·node.js
console.log('npc')7 天前
06 — Model 层:数据模型与操作
前端·后端·node.js·express