公钥和私钥

2023-11-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 文件中导出私钥。可以使用OpenssL导出公钥和私钥.
从 .keystore 中导出私钥需要参考 主流数字证书都有哪些格式?中的转换方法1和4。

在导出的文件中
-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----
或者类似于
-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----
的即是私钥。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

公钥和私钥 的相关文章

  • 获取文件的锁

    我想在对特定文件开始 threo read 时获取文件上的锁定 以便其他应用程序无法读取已锁定的文件并希望在线程终止时释放锁定文件 您可以获得一个FileLock https docs oracle com javase 8 docs ap
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • HAProxy SSL终止+客户端证书验证+curl/java客户端

    我希望使用我自己的自签名证书在 HAProxy 上进行 SSL 终止 并使用我创建的客户端证书验证客户端访问 我通过以下方式创建服务器 也是 CA 证书 openssl genrsa out ca key 1024 openssl req
  • Reactive Spring 不支持 HttpServletRequest 作为 REST 端点中的参数?

    我创建了一个 RestController 如下所示 RestController public class GreetingController RequestMapping value greetings method RequestM
  • 文本在指定长度后分割,但不要使用 grails 打断单词

    我有一个长字符串 需要将其解析为长度不超过 50 个字符的字符串数组 对我来说 棘手的部分是确保正则表达式找到 50 个字符之前的最后一个空格 以便在字符串之间进行彻底的分隔 因为我不希望单词被切断 public List
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • 为什么 MOVE CURSOR 在 OS X Mountain Lion 上不显示?

    我正在做一个项目 想看看 Swing 提供的每个光标是什么样子的 public class Test public static void main String args JFrame frame new JFrame frame set
  • 从直方图计算平均值和百分位数?

    我编写了一个计时器 可以测量任何多线程应用程序中特定代码的性能 在下面的计时器中 它还会在地图中填充花费了 x 毫秒的调用次数 我将使用这张图作为我的直方图的一部分来进行进一步的分析 例如调用花费了这么多毫秒的百分比等等 public st
  • Eclipse - 安装新的 JRE (Java SE 8 1.8.0)

    我正在尝试安装 Java 8 到目前为止我所做的 安装最新版本的 Eclipse 下载并安装 Java SE 运行时环境 8http www oracle com technetwork java javase downloads jre8
  • 如何从日期中删除毫秒、秒、分钟和小时[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我想比较两个日期 然而 我只想比较年 月 日 这就是我能想到的 private Date trim Date date Calendar calendar Calendar getInstanc
  • Java - 从 XML 文件读取注释

    我必须从 XML 文件中提取注释 我找不到使用 JDOM 或其他东西来让它们使用的方法 目前我使用 Regex 和 FileReader 但我不认为这是正确的方法 您可以使用 JDOM 之类的东西从 XML 文件中获取注释吗 或者它仅限于元
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 如何从 Ant 启动聚合 jetty-server JAR?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • 我可以限制分布式应用程序发出的请求吗?

    我的应用程序发出 Web 服务请求 提供商处理的请求有最大速率 因此我需要限制它们 当应用程序在单个服务器上运行时 我曾经在应用程序级别执行此操作 一个对象跟踪到目前为止已发出的请求数量 并在当前请求超出允许的最大负载时等待 现在 我们正在
  • 如何处理 StaleElementReferenceException

    我正在为鼠标悬停工作 我想通过使用 for 循环单击每个链接来测试所有链接的工作条件 在我的程序中 迭代进行一次 而对于下一次迭代 它不起作用并显示 StaleElementReferenceException 如果需要 请修改代码 pub
  • 替换文件中的字符串

    我正在寻找一种方法来替换文件中的字符串而不将整个文件读入内存 通常我会使用 Reader 和 Writer 即如下所示 public static void replace String oldstring String newstring
  • Java 的 PriorityQueue 与最小堆有何不同?

    他们为什么命名PriorityQueue如果你不能插入优先级 它看起来与堆非常相似 有什么区别吗 如果没有区别那为什么叫它PriorityQueue而不是堆 默认的PriorityQueue是用Min Heap实现的 即栈顶元素是堆中最小的
  • HttpClient请求设置属性问题

    我使用这个 HttpClient 库玩了一段时间 几周 我想以某种方式将属性设置为请求 不是参数而是属性 在我的 servlet 中 我想使用 Integer inte Integer request getAttribute obj 我不
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • 基于 Spring Boot 的测试中的上下文层次结构

    我的 Spring Boot 应用程序是这样启动的 new SpringApplicationBuilder sources ParentCtxConfig class child ChildFirstCtxConfig class sib

随机推荐

  • Android自定义控件之自定义属性(二)

    前言 上篇介绍了自定义控件的基本要求以及绘制的基本原理 本篇文章主要介绍如何给自定义控件自定义一些属性 本篇文章将继续以上篇文章自定义圆形百分比为例进行讲解 有关原理知识请参考Android自定义控件之基本原理 一 这篇文章 需求产生背景
  • 关于MPEG4 码流(mpeg4 raw data)的格式分析

    MPEG4码流开头往往如下 00 00 01 B0 F5 00 00 01 B5 09 00 00 01 00 00 00 01 20 08 86 84 00 3F 18 58 21 20 A3 1F 00 00 01 B2 58 76 6
  • 故障诊断1—基础理论

    1 故障诊断概念 故障诊断主要研究如何对系统中出现的故障进行检测 分离和辨识 即判断故障是否发生 定位故障发生的部位和种类 以及确定故障的大小和发生的时间等 2 故障诊断方法 故障诊断防范可分为定性分析和定量分析两大类 如图 1 所示 其中
  • Hexo博客优化:在Next主题中设置进阶版Live2D看板娘————拒绝踩坑!!!!

    最初级的用法 使用官方包安装 安装非常简单 但效果一般 hexo live 2d地址 https github com xiazeyu live2d widget models git命令行中输入 npm install save hexo
  • [SWPUCTF 2022 新生赛]ez_ez_php

    这段代码是一个简单的PHP文件处理脚本 让我们逐行进行分析 error reporting 0 这行代码设置了错误报告的级别为0 意味着不显示任何错误 if isset GET file 这行代码检查是否存在一个名为 file 的GET参数
  • Redis第二十七讲 Redis集群批量操作带来的问题

    Redis集群批量操作 比如对我们之前搭建的三主三从集群进行批量数据插入操作会报什么错误呢 关于Redis集群搭建可以参考我之前的一篇博客 Redis第十九讲 Redis主从 哨兵 集群搭建讲解 Redis集群搭建相对于哨兵还是比较简单的
  • app服务器 数据库文件,app访问服务器mysql数据库文件

    app访问服务器mysql数据库文件 内容精选 换一换 云数据库RDS服务上的MySQL在使用上有一些固定限制 用来提高实例的稳定性和安全性 具体详见表1 对于mysqlpump工具 由于在并行备份场景有coredump问题 不建议您使用
  • 特征工程(一)-- 概述

    简介 特征工程本质上可以理解成数据预处理 其目的是最大限度地从原始数据中提取特征以供算法和模型使用 从而提高模型的准确率等指标 处理的数据中的特征直接影响到正在使用的模型以及能达到的最好的结果 当模型和特征都确定之后 通过调参带来的收益微乎
  • JVM(HotSpot)7种垃圾收集器

    JVM HotSpot 7种垃圾收集器 7种垃圾收集器作用于不同的分代 如果两个收集器之间存在连续 就说明他们可以搭配使用 从JDK1 3到现在 从Serial收集器 Parallel收集器 CMS G1 用户线程停顿时间不断缩短 但仍然无
  • 前端 token-防爆破(CSRF Token Bypass)-burpsuit

    知识点 利用 burpsuite 循环把前端页面上的 token 值加到登录的 token 上 前端页面
  • laravel 利用监听器进行sql语句记录

    利用监听器进行sql语句记录 1 监听sql语句的事件类已经定义 直接创建监听器类即可 监听sql make listener QueryListener event Illuminate Database Events QueryExec
  • 计算机组成-三个子系统互连

    文章目录 CPU与存储器的连接 数据总线 地址总线 控制总线 I O设备的连接 控制器 串行控制器 并行控制器 常用控制器 SCSI小型计算机系统接口 火线 通用串行总线 USB 高清清晰度多媒体接口 HDMI CPU与存储器的连接 CPU
  • SpringBoot中的项目属性配置

    概述 在项目中 很多时候需要用到一些配置信息 这些信息在测试环境和生产环境下可能会有不同的配置 后面根据实际业务情况有可能还需要再做修改 针对这种情况 我们不能将这些配置在代码中写死 最好是写到配置文件中 比如可以把这些信息写到 appli
  • Qml使用videooutput送入yuv数据无法显示视频

    表现 送入 yuv 数据进入 videooutput 无视频渲染 原因 系统环境变量存在 QMLSCENE DEVICE softwarecontext VideoOutput 不能使用 qt 的软渲染即 Qt Quick Software
  • 毕业设计-基于深度学习的遥感影像语义分割方法

    目录 前言 课题背景和意义 实现技术思路 一 基础理论与相关技术 二 多特征注意力融合的遥感影像语义分割网络 三 双分支轻量级的遥感影像语义分割网络 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面
  • 人工智能CV应用现状与发展 - 讲座记录

    简单介绍 CV应用现状与发展前景如何 算法工程师如何自我修炼 CV应用现状与发展前景如何 模型训练好后 新增场景case 则需要再次进行模型训练 模型固化 硬件部署 也固化 不同模型部署在不同硬件有挑战 比如 云雾和烟火雾的区别 毛肚的异常
  • VMware虚拟机安装Windows 7

    昨天我总结了win10和win11的教程 今天也把win7总结下 一来方便各位探索Windows7 二来也可以给自己备份 1 准备工作 首先我们在VMware里面安装Windows7需要做的准备工作 VMware Workstation软件
  • ISCC 2019 杂项 他们能在一起吗?(小明在网上向暗恋已久的女生表白了,对方只给小明发来了一个二维码作为回复,面对小明的求助,你会告诉他这名女生想表达的意思吗?)

    先打开下载吧 哈啊哈哈哈 点附件下载直接是这个二维码 让我们用手机扫描一下 得到一串字符串 如下 UEFTUyU3QjBLX0lfTDBWM19ZMHUlMjElN0Q 之后根据 我之前文章里的 格式 这个应该是个 base64加密过的 b
  • Linux网络编程之本地套接字

    Linux网络编程之本地套接字 一 本地套接字 二 对比本地套和网络套 三 本地套接字代码实现 一 本地套接字 二 对比本地套和网络套 三 本地套接字代码实现 接口C文件 include
  • 公钥和私钥

    概念 公钥 Public Key 与私钥 Private Key 是通过一种算法得到的一个密钥对 即一个公钥和一个私钥 公钥是密钥对中公开的部分 私钥则是非公开的部分 公钥通常用于加密会话密钥 验证数字签名 或加密可以用相应的私钥解密的数据