生成公钥私钥教程

一、 什么是公钥和私钥

公钥和私钥的定义

公钥和私钥是非对称加密技术中的一对密钥,用于加密、解密或数字签名。公钥可公开分发,私钥必须严格保密。

非对称加密的基本原理

非对称加密使用数学上关联的两个密钥:

  • 公钥:用于加密数据或验证数字签名,可自由共享。
  • 私钥:用于解密数据或生成数字签名,仅由持有者保管。

数学关系示例(RSA算法):
若公钥为 (e,n)(e, n)(e,n),私钥为 ddd,则满足 e⋅d≡1mod  ϕ(n)e \cdot d \equiv 1 \mod \phi(n)ed1modϕ(n),其中 ϕ(n)\phi(n)ϕ(n) 是欧拉函数。

主要用途

数据加密
发送方用接收方的公钥加密数据,仅接收方可用私钥解密。

数字签名
发送方用私钥生成签名,接收方用公钥验证签名真实性。

常见算法

  • RSA:基于大整数分解难题。
  • ECC(椭圆曲线加密):基于椭圆曲线离散对数问题,密钥更短。
  • EdDSA:用于高效数字签名,如Ed25519。

密钥管理

  • 私钥安全:需存储在硬件安全模块(HSM)或加密容器中。
  • 公钥分发:通过数字证书(如X.509)由可信机构(CA)验证。

与对称加密的区别

对称加密(如AES)使用单一密钥,速度快但密钥分发困难;非对称加密解决密钥分发问题,但计算开销较大。实际应用中常结合两者(如TLS协议)。

应用场景

  • HTTPS/SSL:网站加密通信。
  • SSH:远程登录认证。
  • 加密货币:比特币地址由公钥哈希生成。

通过非对称加密,公钥和私钥实现了安全通信和身份验证的核心功能。

设置公钥

  1. 首先在本机上找到C:\Users\用户名.ssh这个文件,如果没有.ssh就创建一个;
  2. 然后在该文件夹下点击Git Bash Here,进入一个命令行窗口
    在这里插入图片描述
  3. 生成公钥最简单的方法如下
ssh-keygen -t rsa

如果想要生成多个RSA算法的公钥,想应用于不同的平台,例如github, gitee等。可以使用如下方法

ssh-keygen -t rsa -f ~/.ssh/github_id_rsa

其中github_id_rsa可以换成任意的名字,如gitee_id_rsa,这样就会生成
在这里插入图片描述
4. 最后在config文件中进行配置,如果没有config文件就创建一个
5. 配置方法如下

# GitHub 配置
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github_id_rsa

# GitLab 配置
Host gitlab.com
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/gitlab_ed25519

  • Host:你起的别名(可以随便取),也可以直接写目标域名。

  • HostName:真实的服务器地址,比如 github.com、gitee.com。

  • User:登录时的用户名,Git 平台一般都是固定的 git。

  • IdentityFile:私钥文件路径,指定要用哪把钥匙。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值