github 公钥 私钥_理解公钥与私钥

一直都对公钥和私钥的概念不清不楚,以至于在 腾讯面试 被问到“如何在一个不安全的环境中实现安全的数据通信?”时,并没有答上来。今天查阅了一些资料,决定写一篇总结文章来加深自己的理解。

一、公钥算法与私钥算法

1、私钥算法

私钥加密算法,又称 对称加密算法,因为这种算法解密密钥和加密密钥是相同的。也正因为同一密钥既用于加密又用于解密,所以这个密钥是不能公开的。常见的有《DES加密算法》、《AES加密算法》。

2、公钥算法

公钥加密算法,也就是 非对称加密算法,这种算法加密和解密的密码不一样,一个是公钥,另一个是私钥:

公钥和私钥成对出现

公开的密钥叫公钥,只有自己知道的叫私钥

用公钥加密的数据只有对应的私钥可以解密

用私钥加密的数据只有对应的公钥可以解密

如果可以用公钥解密,则必然是对应的私钥加的密

如果可以用私钥解密,则必然是对应的公钥加的密

公钥和私钥是相对的,两者本身并没有规定哪一个必须是公钥或私钥。

二、实现数据的安全传输

要实现数据的安全传输,当然就要对数据进行加密了。

如果使用对称加密算法,加解密使用同一个密钥,除了自己保存外,对方也要知道这个密钥,才能对数据进行解密。如果你把密钥也一起传过去,就存在密码泄漏的可能。所以我们使用非对称算法,过程如下:

首先 接收方 生成一对密钥,即私钥和公钥;

然后,接收方 将公钥发送给 发送方;

发送方用收到的公钥对数据加密,再发送给接收方;

接收方收到数据后,使用自己的私钥解密。

由于在非对称算法中,公钥加密的数据必须用对应的私钥才能解密,而私钥又只有接收方自己知道,这样就保证了数据传输的安全性。

三、对信息进行数字签名

除了保证数据的安全传输之外,公钥体系的另一个用途就是对数据进行签名。通常“数字签名”是用来验证发送方的身份并帮助保护数据的完整性。

例如:一个发送者 A 想要传些资料给大家,用自己的私钥对资料加密,即签名。这样一来,所有收到资料的人都可以用发送者的公钥进行验证,便可确认资料是由 A 发出来的了。(因为只有A使用私钥签名得到的信息,才能用这个公钥来解) 采用数字签名,可以确认两点:

保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。

保证信息自签发后到收到为止未曾作过任何修改。

之所以可以确认这两点,是因为用公钥可以解密的必然是用对应的私钥加的密,而私钥只有签名者持有。

四、公钥算法的缺点

现实中,公钥机制也有它的缺点,那就是效率非常低,比常用的私钥算法(如 DES 和 AES)慢上一两个数量级都有可能。所以它不适合为大量的原始信息进行加密。为了同时兼顾安全和效率,我们通常结合使用公钥算法和私钥算法:

首先,发送方使用对称算法对原始信息进行加密。

接收方通过公钥机制生成一对密钥,一个公钥,一个私钥。

接收方 将公钥发送给 发送方。

发送方用公钥对对称算法的密钥进行加密,并发送给接收方。

接收方用私钥进行解密得到对称算法的密钥。

发送方再把已加密的原始信息发送给接收方。

接收方使用对称算法的密钥进行解密。

总结:

每个用户都有一对私钥和公钥。

私钥用来进行解密和签名,是给自己用的。

公钥由本人公开,用于加密和验证签名,是给别人用的。

当该用户发送文件时,用私钥签名,别人用他给的公钥解密,可以保证该信息是由他发送的。即数字签名。

当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他看到。即安全传输。

图片来源:www.cnblogs.com/chnking/archive/2007/08/30/875947.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多云系统的授权

这是我目前正在致力于消耗SPIFFE( 安全生产身份框架 (Every Production Identity Framework For Everyone )在WSO2的Prabath Siriwardena先生的启发下,在Moratuwa大学的Gihan Dias教授的指导下,通过信任和身份验证在动…

【渝粤教育】电大中专跨境电子商务理论与实务 (28)作业 题库

1.跨境电子商务对接“中国制造”激活了“买卖全球”,而与跨境电商联合则成为“中国制造”在全球崛起的重要支点。该说法( ) A.正确 B.错误 错误 正确答案:左边查询 学生答案:B 2.京东海外购的运营模式是( &…

级联选择组件_如何开发一个 Antd 级联多选控件

本文也同步发在掘金上, https:// juejin.cn/post/69149942 41940750343 Intro 这篇文章将从零开始介绍如何开发一个 Antd 的级联多选选择器。先看效果: Github,Sandbox 阅读完这篇文章,不仅可以学会如何实现级联多选的功能,还可以顺便学会: 如何发布一个 Typescript 编写…

python安卓自动化测试工具有哪些_Android 手机自动化测试工具有哪几种?

如今自动化测试已经应用到每天的测试中。这不足为奇,因为自动化测试在测试过程中节约了时间,还能避免包括人为因素造成的测试错误和遗漏。自动化测试工具选择很多。一些是开源的,一些非常贵。一些自动化工具是几年前出的,一些才在市场上出来。…

通过Spring Integration消费Twitter Streaming API

1.概述 众所周知, Spring Integration具有用于与外部系统交互的大量连接器。 Twitter也不例外,而且很长一段时间以来,因为Spring Social一直是一个开箱即用的解决方案,Spring Integration利用该解决方案来连接到社交网络。 1.1Sp…

mysql5.6 1g内存_1G内存用MySQL5.6还是用MySQL5.5比较好

mysql的50版本和51版本的区别:一、5.0 增加了stored procedures、views、cursors、triggers、xa transactions的支持,增加了inforation_schema系统数据库。二、5.1 增加了event scheduler,partitioning,pluggable storage engine …

java aspectj_Java:AspectJ的异常翻译

java aspectj在这篇博客文章中,我描述了如何使用AspectJ自动将一种异常类型转换为另一种异常类型。 问题 有时,我们处于必须将异常(通常由第三方库引发)转换为另一种异常的情况。 假设您正在使用像hibernate这样的持久性框架&…

mysql5.6.33安装教程_Linux下mysql5.6.33安装配置教程

本教程为大家分享了mysql5.6.33在linux下的安装配置方法,供大家参考,具体内容如下1、下载下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads下载版本:我这里选择的5.6.33,通用版,linux下6…

【渝粤教育】广东开放大学 劳动关系理论与实务 形成性考核 (1)

选择题 题目: 劳动关系的主体是( )。 答案:看左侧 题目: 主要研究企业对员工的管理政策、策略和实践的学派被称为( )。 答案:看左侧 题目: 工会以(…

【渝粤教育】广东开放大学 土木工程测量 形成性考核 (45)

选择题 题目:地面点沿法线方向至参考椭球面的距离称为该点的() 题目:地面点沿铅垂线方向至大地水准面的距离称为该点的() 题目:我国目前采用的高程基准是 题目:象限角的取值范围 题目…

基于表达式的访问控制

1.概述 今天,我们将回顾基于表达式的访问控制(EBAC),基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)之间的区别,并将重点放在EBAC上。 2.什么是基于表达式的访问控…

excel数据命令导入mysql_如何将EXCEL数据导入MYSQL

VBA对MySql数据库进行读取和写入操作时间:2009-10-06 09:18:47来源:网络 作者:未知 点击:178次以下代码用于32位系统,Office 2003,环境,MySql版本5.1在使用前需要先安装MySql的驱动,进行正确配置注意:必须给出正确的服务器名、数据库名、表名、数据库连接…

【渝粤教育】广东开放大学 工程力学 形成性考核 (27)

选择题 题目:物体受平面内三个互不平行的力作用而平衡,三个力的作用线()。 题目:力偶对物体的作用效应,决定于()。 题目:平面平行力系的独立平衡方程数目一般有&#xff…

node mysql安装目录_nodejs 指定全局安装路径和缓存路径

1、前提:已安装 nodejs(nodejs官网 https://nodejs.org), 并且已将其添加到了环境变量 path 中;2、进入cmd命令行,然后输入 node -v ,测试是否安装成功,出现版本号就表示安装成功3、进入cmd命令行,然后输入…

【渝粤教育】广东开放大学 房屋建筑学 形成性考核 (50)

选择题 题目:以下基础一般应用于单层厂房的基础是 题目:以下属于刚性防水的是 题目:装配整体式钢筋混凝土楼板包括 题目:当主梁的跨度为7m时,以下主梁高设计尺寸合理为 题目:是指为了防止建筑物构件由于气候…

【渝粤教育】广东开放大学 文化项目管理 形成性考核 (36)

选择题 题目: ( )是依据一定的标准和程序,对政策的效益、效率及价值进行判断的一种政治行为,目的在于取得有关这些方面的信息,作为决定政策变化、政策改进和制定新政策的依据 选择一项: 答案:看左侧 题目&…

mysql的sql执行原理图_性能测试MySQL之SQL运行原理

一,MySQL运行原理两个一样的图1,SQL语句执行的过程详细说明如上图所示,当向MySQL发送一个请求的时候,MySQL到底做了什么:a, 客户端发送一条查询给服务器。b, 服务器先检查查询缓存,如果命中了缓存&#xff…

穹顶灯打不出阴暗面_Java 8星期五:Java 8的阴暗面

穹顶灯打不出阴暗面在Data Geekery ,我们喜欢Java。 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五,我们都会向您展示一些不错的教程风格的…

【渝粤教育】广东开放大学 物业服务营销管理 形成性考核 (59)

选择题 题目: 单选 ( )是物业服务产品的期望产品。 答案:看左侧 题目: 单选 ( )是指模仿市场上旺销的其他物业服务企业的产品而开发的某种新产品。 答案:看左侧 题目&#xff1a…

【渝粤教育】广东开放大学 系统工程 形成性考核 (25)

选择题 题目:系统工程与系统科学的区别是,前者是工程技术,后者是基础理论。 答案:看左侧 题目:"有机论”生物学认为,有机体可分解为各个部分,各个部分的功能完全决定了系统的功能和特性。 …