Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何用私钥公钥加密

如何用私钥公钥加密

作者头像
用户8418197
发布于 2021-12-23 14:25:27
发布于 2021-12-23 14:25:27
2.2K0
举报
文章被收录于专栏:howtouselinuxhowtouselinux

密钥对,私钥,公钥

基本概念

密钥的分类

详细过程

基本概念

首先明确几个基本概念:

1、密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。

2、公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。

3、私钥,如上,用来解密公钥加密的数据。

4、摘要,对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。

5、数字签名,使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。

6、签名验证,数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密,得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。

使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

密钥的分类

对称密钥加密,又称私钥加密或会话密钥加密算法,即信息的发送方和接收方使用同一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。

非对称密钥加密,又称公钥密钥加密。它需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。

详细过程

那么这里一共有两组四个密钥:A的公钥(PUB_A),A的私钥(PRI_A);B的公钥(PUB_B),B的私钥(PRI_B)。

公钥一般用来加密,私钥用来签名。

公钥和私钥唯一对应,用某个公钥签名过得内容只能用对应的私钥才能解签验证;同样用某个私钥加密的内容只能用对应的公钥才能解密。

这时A向B发送信息的整个签名和加密的过程如下:

1、A先用自己的私钥(PRI_A)对信息(一般是信息的摘要)进行签名。

2、A接着使用B的公钥(PUB_B)对信息内容和签名信息进行加密。

这样当B接收到A的信息后,获取信息内容的步骤如下:

1、用自己的私钥(PRI_B)解密A用B的公钥(PUB_B)加密的内容;

2、得到解密后的明文后用A的公钥(PUB_A)解签A用A自己的私钥(PRI_A)的签名。

从而整个过程就保证了开始说的端到端的唯一确认。A的签名只有A的公钥才能解签,这样B就能确认这个信息是A发来的;A的加密只有B的私钥才能解密,这样A就能确认这份信息只能被B读取。

下面的例子很好了解释了这个问题。

how to get public key from private key

create rsa dsa key with openssl

Fix ssl key values mistch issue

setup ssh key to login Linux

which ssh key is secure

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
Retrofit/Okhttp API接口加固技术实践(下)
上篇加固介绍了APi单纯Post用对称加密(文中用Base64 为简单列子)加密方式,这种加密方式还是存在一定的风险,加密效率虽高,但易破解,本节将介绍怎么用非对称加密 来加解密okhttp的数据,本文采用RSA加密算法为栗子。
开发者技术前线
2020/11/23
7360
Retrofit/Okhttp API接口加固技术实践(下)
经得住拷问的HTTPS原理解析
HTTPS 是在 HTTP 和 TCP 之间建立了一个安全层,HTTP 与 TCP 通信的时候,必须先进过一个安全层,对数据包进行加密,然后将加密后的数据包传送给 TCP,相应的 TCP 必须将数据包解密,才能传给上面的 HTTP。
用户4456933
2021/06/01
6380
经得住拷问的HTTPS原理解析
关于公钥与私钥,以及利用它们进行加密和认证
下一篇,我即将详细分析windows vista下的EFS加密技术。在这之前,先分析一下相关的公钥与私钥、以及相关的加密与认证技术。
williamwong
2018/07/24
1.7K0
关于公钥与私钥,以及利用它们进行加密和认证
从崩溃的选课系统,论为什么更安全的 HTTPS 协议没有被全面采用
上一篇文章详细讲解了 HTTP 的相关原理,我们已经了解到了 HTTP 具有非常优秀和方便的一面,然而,HTTP 并非一个安全的协议。大家平常浏览网页的时候应该也能注意到,使用 HTTP 协议的网站,浏览器都会认定这是一个不安全的网站,提醒用户注意防范(即便这是我们学校的选课系统)。
飞天小牛肉
2021/02/26
7550
从崩溃的选课系统,论为什么更安全的 HTTPS 协议没有被全面采用
Openssl加密解密原理+CA自建实现
前言 互联网的惊人发展使企业和消费者都感到非常兴奋,它正改变着我们的生活和工作方式。但是,互联网的安全程度如何——尤其是在通过它发送机密信息时的安全性——已经成为人们关心的主要问题。随着时代的发展,加密原理也不断地在更新换代. 数据的加密目前已广泛地运用于战争,商业活动,信息交换等领域,。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑网络中还是近几年的历史。以下我们将了解一下加密技术的方方面面,愿能为那些对加密技术有兴趣的朋友提供一个详细了解的机会! 在 电子商务没有出现之前,我们基本上
小小科
2018/05/02
1.7K0
Openssl加密解密原理+CA自建实现
JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)
  在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
Java团长
2018/08/06
5110
理解证书验证系列——HTTPS
这种方式加密和解密同用一个密钥。加密和解密都会用到密钥。没有密钥就无法对密码解密,反过来说,任何人只要持有密钥就能解密了。
mingjie
2022/05/12
8630
理解证书验证系列——HTTPS
保证接口数据安全的10种方案
我们日常开发中,如何保证接口数据的安全性呢?个人觉得,接口数据安全的保证过程,主要体现在这几个方面:一个就是数据传输过程中的安全,还有就是数据到达服务端,如何识别数据,最后一点就是数据存储的安全性。今天跟大家聊聊保证接口数据安全的10个方案。
捡田螺的小男孩
2023/02/24
1.4K0
保证接口数据安全的10种方案
加密传输原理
数字签名,就是通过在数据单元上附加数据,或对数据单元进行秘密变换,从而使接收者可以确认数据来源和完整性。简单说来,数字签名是防止他人对传输的文件进行破坏,以及确定发信人的身份的手段。 目前的数字签名是建立在公共密钥体制基础上,它是公用密钥加密技术的另一类应用。它的主要方式是:报文的发送方从报文文本中生成一个128位的散列值(又称报文摘要,数字指纹)。发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先从接收到的原
小小科
2018/05/02
1.1K0
RSA 算法简述
数字签名是实现安全的核心技术之一,它的实现基础就是RSA加密技术,它是RSA的典型应用。 以往的书信或文件是通过亲笔签名或印章证明其真实性的,但在计算机网络中,要解决报文的验证问题,就要使用数字签名,其必须保证以下几点:
IT茂茂
2020/03/05
2.5K0
RSA 算法简述
加密算法介绍
数字签名,简单来说就是通过提供 可鉴别 的 数字信息 验证 自身身份 的一种方式。一套 数字签名 通常定义两种 互补 的运算,一个用于 签名,另一个用于 验证。分别由 发送者 持有能够 代表自己身份 的 私钥 (私钥不可泄露),由 接受者 持有与私钥对应的 公钥 ,能够在 接受 到来自发送者信息时用于 验证 其身份。
郭顺发
2023/07/17
2910
证书、公钥、加密验证
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
艳龙
2021/12/16
1.8K0
证书、公钥、加密验证
数据安全RSA算法,加密解密,签名验签流程详解
(1)、乙方生成一对密钥即公钥和私钥,私钥不公开,乙方自己持有,公钥为公开,甲方持有。
知了一笑
2019/10/23
2.2K0
数据安全RSA算法,加密解密,签名验签流程详解
Java安全编程:公钥加密和私钥签名的实践指南
在数字通信和数据保护领域,非对称加密技术扮演着至关重要的角色。这种技术涉及两种关键操作:使用公钥进行加密和使用私钥进行签名。这两种操作虽然使用相似的技术,但它们的目的、安全需求和实现方式却大相径庭。
陆业聪
2024/10/28
2770
Java安全编程:公钥加密和私钥签名的实践指南
CA证书介绍与格式转换
PKCS 公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由RSA资讯安全公司(英语:RSA Security)所制定,PKCS 目前共发布过 15 个标准。更多公钥加密标准
Miloce
2022/09/28
5K0
HTTPS单向认证原理
HTTPS的认证有两种,一种是单向认证,即客户端验证服务器,只确保服务器的身份是正确的;另一种是双向认证,即客户端要验证服务器,服务器也要验证客户端的身份,即双方都要证明我是我,彼此也都确认你是你。
Learning_斌
2019/09/05
1.5K0
为什么HTTPS比HTTP更安全?
近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流。
心莱科技雪雁
2019/06/05
4600
为什么HTTPS比HTTP更安全?
你的HTTP接口签名校验做对了吗?
举个例子,A正在某银行网站给B转账,转入卡号和金额输入完成后生成请求报文,然后加密报文传送给银行后台。银行收到请求后,解密得到明文,然后解析得到B的卡号和转账金额等信息,继续走后续转账流程。
普通程序员
2019/10/23
5.6K0
你的HTTP接口签名校验做对了吗?
五、数字签名及存在的问题
  上一篇我们说到了消息认证码可以防止假冒和篡改,而无法防止事后否认,这里我们会讲解数字签名为什么能解决这个问题。
砖业洋__
2023/05/06
6130
五、数字签名及存在的问题
谈谈HTTPS演变过程
本文谈谈HTTPS设计演变过程,希望对大家理解HTTPS有帮助,有不对的地方欢迎指出。
捡田螺的小男孩
2020/04/14
3900
相关推荐
Retrofit/Okhttp API接口加固技术实践(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档