公钥和私钥
一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可。今天在网上找了半天,通过查看对这个密钥对的理解,总算弄清楚了。
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。
使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
2. 必须保证是我发送的邮件,不是别人冒充我的。
要达到这样的目标必须发送邮件的两人都有公钥和私钥。
公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。
比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签 验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。
数字证书的原理
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时 设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使 用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密. 在公开密钥密码体制中,常用的一种是RSA体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
相关推荐
在IT领域,尤其是在网络安全和加密技术中,公钥和私钥是至关重要的概念。公钥和私钥是一种非对称加密技术的基础,广泛应用于数据传输、数字签名和身份验证等场景。RSA是一种著名的公钥加密算法,由Ron Rivest、Adi ...
在Java编程语言中,公钥和私钥加密解密是一种重要的安全技术,广泛应用于网络通信、数据传输等领域。本文将详细解析如何使用Java实现公钥和私钥的加解密操作,以及相关的关键概念和代码示例。 首先,我们要了解公钥...
Android中使用命令查看keystore的公钥和私钥,准备好keystore文件后按文档中操作即可获得keystore的公钥和私钥。
本示例提供了一个RSA加密工具类,用于生成公钥和私钥,并使用它们进行加密和解密操作,这对于保护数据库中的敏感信息,如密码,是非常必要的。 1. **RSA算法原理**: RSA算法基于数论中的大数因子分解难题。其基本...
在进行支付宝集成开发时,公钥和私钥的设置是至关重要的步骤,它们构成了安全通信的基础。本文将详细讲解如何在支付宝后台设置公钥和私钥,以及它们在支付过程中的作用。 首先,公钥和私钥是基于非对称加密技术的...
本文将详细讲解如何在Windows操作系统上利用OpenSSL工具生成RSA公钥和私钥。 首先,OpenSSL是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用...
在Java中实现RSA公钥和私钥的生成,通常我们会使用Java Cryptography Extension (JCE) 提供的API,如`java.security.KeyPairGenerator`类。但是,根据你的描述,这里提供的代码是不直接依赖API,而是通过数学计算来...
本教程主要讲解如何在C# .NET环境中使用RSA进行公钥加密和私钥解密,以及私钥加密和公钥解密的操作。 首先,让我们了解RSA的基本原理。RSA算法基于两个大素数的乘积,这个乘积作为公钥,而这两个大素数作为私钥。...
在IT行业中,尤其是在支付系统和安全通信领域,公钥和私钥是至关重要的概念。公钥和私钥机制是基于非对称加密算法,广泛应用于数据加密、数字签名以及身份验证等方面。支付宝作为国内领先的支付平台,也采用了这种...
在IT领域,尤其是在网络安全和数据保护方面,公钥和私钥加密算法扮演着至关重要的角色。这个名为"VC++写的公钥和私钥加密算法"的项目,显然是一个使用Microsoft Visual C++编写的示例,旨在帮助初学者理解这种加密...
在 KeyGenerater 类中,我们使用 Java 的 KeyPairGenerator 类来生成公钥和私钥对,然后使用 Base64 对公钥和私钥进行编码。我们可以使用 SecureRandom 类来初始化随机数生成器,并使用 setSeed 方法来设置随机数...
RSA算法是一种非对称加密算法,它在信息...综上所述,C++实现RSA公钥私钥加密算法涉及了大数运算、素数检测、欧拉函数、模逆运算等多个数学和密码学概念。理解并实现这一算法有助于深入理解信息安全基础和加密技术。
SSH 配置公钥和私钥登录 SecureCRT SSH(Secure Shell)是一种网络协议,用于安全地访问和管理远程服务器。 SecureCRT 是一种流行的 SSH 客户端软件,支持多种身份验证方式,包括密码认证和公钥认证。在本文中,...
在IT领域,尤其是在网络安全和数据传输中,公钥加密和私钥解密是一种常见的安全机制。这个名为"Java公钥加密私钥解密.rar"的压缩包文件包含了一个使用Java实现的公钥/私钥加密解密的示例。在这个案例中,开发者可能...
NULL 博文链接:https://mlaaalm.iteye.com/blog/701070
openssl 中把pem格式的SM2密钥,解析成EC_KEY格式的key,然后解析出key中公钥和私钥
在Java中,我们可以使用Java Cryptography Extension (JCE) 库来生成和操作RSA密钥对,包括公钥和私钥。 生成RSA公钥和私钥的基本步骤如下: 1. **创建KeyPairGenerator对象**:首先,我们需要创建一个...
Puttygen,全称为PuTTY Key Generator,是Windows操作系统下广泛使用的工具,专门用于生成SSH(Secure Shell)的公钥和私钥对。这个工具是PuTTY套件的一部分,PuTTY是一个流行的免费终端模拟器和网络文件传输应用...
在本场景中,我们关注的是如何从RSA.PFX证书中提取XML或PEM格式的公钥和私钥。 PFX(Personal Information Exchange)文件是微软定义的一种证书存储格式,它包含了用户的数字证书和相应的私钥,通常用于跨平台的...