什么是公钥和私钥?

阅读:186 2021-04-17 08:37:04

公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

数字证书是一个经证书授权中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。

阿里云证书服务对您密钥的加密算法和长度有如下要求:加密算法使用RSA,加密长度至少2048,推荐您使用2048位,SHA256摘要算法。

您可以通过如下方式创建私钥:

一. 使用OpenssL生成私钥。

OpenssL是一个强大且应用广泛的安全基础库工具,您可以在 http://www.openssl.org/source/ 来获取最新的openssl安装包(版本要>=1.0.1g)。

在命令行模式下运行:

openssl genrsa -out myprivate.pem 2048 

来生成您的私钥文件: myprivate.pem, 其中"2048"是加密长度

二. 使用Keytool导出私钥。

Keytool是JDK中自带的密钥管理工具,可以制作Keystore(jks)格式的证书文件,您可以在 http://www.oracle.com/technetwork/java/javase/downloads/index.html 中下载JDK来获取keytool工具。

因为keystore制作公钥和私钥默认是不可以导出的,所以需要您从已经创建好的 .keystore 文件中导出私钥。

从 .keystore 中导出私钥需要参考 主流数字证书都有哪些格式?中的转换方法1和4。

在导出的文件中

-----BEGIN RSA PRIVATE KEY-----

......

-----END RSA PRIVATE KEY-----

或者类似于

-----BEGIN PRIVATE KEY-----

......

-----END PRIVATE KEY-----

的即是私钥。

无论哪种方式生成密钥,都请您完善的保护好您的私钥文件,私钥文件如果丢失或者损坏,您申请对应的公钥/数字证书将无法使用。

相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服