https加密解密过程二、名词解析及文件生成

news/2024/5/6 3:55:41/文章来源:https://blog.csdn.net/qq13933506749/article/details/128116035

https加密解密过程二、名词解析及文件生成

密钥仓库keystore文件

Keytool是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中

keystore文件的内容其实就是把私钥、公钥以及公钥对应的地址等信息输出为json格式的数据

在keystore里,包含两种数据:

密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
可信任的证书实体(trusted certificate entries)——只包含公钥
Keystore可以简单理解为一个存放应用签名的文件。我们可以称它为秘钥库,是为了保护我们自己开发的应用的。

通过秘钥,可以证明这个APP是由某个个人或者企业开发的。在生成KeyStore的时候,开发者会录入自己姓名、单位、组织、所在城市、省份、国家代码等信息。

keytool -genkeypair -alias MetersPhereTestPCK -keypass 123456 -keyalg RSA -keysize 2048 -validity 36500 -storetype PKCS12 -keystore D:/p12/MetersPhereTestPCK.keystore

这个命令是jdk自带的,在cmd窗口执行即可
在这里插入图片描述

如果报错

keytool 错误: java.security.KeyStoreException: Unrecognized keystore format. Please load it with a specified type

我也不知道为什么,我的方式是删除文件再重建,且换个名字,同时把指令里的额名字也换了,然后打开新的cmd窗口,多试几次,就成功了

命令解释:
• -genkey 表示要创建一个新的密钥。 • -alias 表示 keystore 的别名。 • -keyalg 表示使用的加密算法是 RSA。• -keysize 表示密钥的长度.。• -keystore 表示生成的密钥存放位直。 • -validity 表示密钥的有效时间,单位为天。•-storepass 指定访问密钥库的密码。•-storetype :密钥库类型,这里设置为 PKCS12 •-sigalg:签名算法,当密钥算法设为RSA时,可以设置的签名算法有:MD5withRSA、SHA1withRSA、SHA256withRSA、SHA384withRSA、SHA512withRSA,这里咱们没有用到

在这里插入图片描述

再次返回文件目录检查文件,文件内已经有内容了
在这里插入图片描述

经过上述操作,秘钥库中已经创建了数字证书(没有经过CA认证),但不影响我们使用。我们可以将数字证书导出,发送给合作伙伴进行加密交互

.p12(PKCS #12)

我的理解就是和keystore是一个东西,只是不同的格式
我们的每一个keystore都可以生成一个.p12文件,这个文件是一个加密的文件,只要知道其密码,就可以供给所有的系统设备使用,使设备不需要在重新申请开发和发布证书,就能使用。
二进制格式,同时包含证书和私钥,一般有密码保护。
注意:一般.p12文件是给与别人使用的,本机必须已经有一个带秘钥的证书才可以生成.p12文件
.keyStore一般存放的是(服务器端或客户端)证书与密钥,或直接存放 .p12 文件包。
.p12一般存放的是生成的(服务器端或客户端)证书与密钥,类似打包存放。

有加密解密,肯定伴随而来的会有一套标准存在,就像我们的社会一样,法律,规定都是必不可少的;由RSA实验室和其他安全系统开发商为促进公钥密码的发展而制定的一些列标准–PKCS(公钥加密标准)。它至今共发不过15个标准,常用标准有:

PKCS#7:密码消息语法标准;
PKCS#10:证书请求语法标准;文件用于证书签发申请;
PKCS#12:个人信息交换语法标准;文件可作为Java中的秘钥库或信任度直接使用。
.p12则是PKCS#12文件名后缀的一种,所以常用来被传送私钥,用来解密使用。

其实说来说去,他们同属于“数字证书”;什么是数字证书呢?数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书授权(CertificateAuthority)中心发行的,人们可以在网上用它来识别对方的身份。在当今这个互联网时代,已经成为了必不可少,不可或缺的一个过程。

然后根据生成的srore文件导出p12文件

keytool -importkeystore -srckeystore D:/p12/MetersPhereTestPCK.keystore -destkeystore D:/p12/MetersPhereTestPCK.p12 -srcalias MetersPhereTestPCK -destalias MetersPhereTestPCK -srcstoretype JKS -deststoretype PKCS12 -noprompt

在这里插入图片描述

查看生成了对应的文件
在这里插入图片描述

指令对应的含义

-importkeystore  从其他秘钥库导入一个或所有条目
-srckeystore 原来keystore文件所在位置
-destkeystore 生成的p12文件的位置
-deststoretype 目标密钥库类型
-srcstorepass :源密钥库密码,这里的设置值与步骤3中的storepass对应;
-noprompt 无提示
-srcalias 当指定了srcalias选项时,该命令将别名对应的条目导入至目标密钥库中。若未指定destalias选项,则会使用srcalias选项作为目标别名。若源条目受密码保护,需要通过srckeypass选项指定,用于恢复条目。当未指定srckeypass选项时,会尝试使用srcstorepass选项恢复条目。当未指定srcstorepass选项或不正确时,会提示用户输入密码。目标条目将会使用destkeypass作为密码进行保护。若未指定destkeypass选项,则会使用源条目密码进行保护。
当未指定srcalias选项时,源密钥库中的全部条目都会会导入目标密钥库中。每个目标密钥库中的条目都会使用源密钥库对应的别名存储。若源条目受密码保护,srcstorepass选项为源密钥库密码用于恢复条目。若srcstorepass选项未指定或不正确,会提示用户输入密码。当源密钥库中某个条目的类型不受目标密钥库支持时,或将条目存储至目标密钥库时出现错误时,将会提示用户跳过当前条目并继续,还是退出。目标条目会使用源条目的密码进行保护。
当目标别名已在目标密钥库中存在时,会提示用户覆盖对应的条目还是创建新的别名。这一段我没看懂,只知道destalias和srcalias跟上我们在生成store文件时候的alias 参数就可以

声明:为什么-srcstoretype JKS,JKS和store明明是两种格式,为什么这里是JKS我也不清楚,以后明白了再来填坑

.key私钥文件

命令如下

openssl pkcs12 -in D:/p12/MetersPhereTestPCK.p12 -nocerts -nodes -out D:/p12/MetersPhereTestPCK.key

我们需要安装一下openssl
下载连接
全功能的是不带light的,我们下载带light基本功能的就行
在这里插入图片描述
下载下来傻瓜式安装即可,然后配置环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

.cer公钥文件

可以是二进制格式(der),可以是文本格式(pem)。只包含证书,不保存私钥。一般Linux使用.crt后缀,.cer是windows后缀。

keytool -export -alias MetersPhereTestPCK -keystore D:/p12/MetersPhereTestPCK.keystore -rfc -file D:/p12/MetersPhereTestPCK.cer

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

[附源码]Python计算机毕业设计Django二手书店设计论文

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

13.前端笔记-CSS-盒子样式应用(圆角、阴影)

1、圆角边框 border-radius属性,用于设置元素的外边框圆角 原理:(椭)圆和矩形的两条边相切(圆的半径就是length),形成圆角效果 属性: border-top-left-radius;左上 border-top-right-radius:右上 border…

一起学时序分析之建立/保持时间裕量

何为裕量? 裕量,英文名称叫做“Slack”。我们在Vivado实现后的报告中常常能看到这样一栏: 因为都是缩写,所以我们来解释一下前四栏的含义: WNS,即Worst Negative Slack,最差负时序裕量。这个表…

(四) 共享模型之管程【Monitor 概念】

一、Java 对象头(P75) 二、原理之 Monitor(锁) Monitor 被翻译为监视器或管程。 每个 Java 对象都可以关联一个 Monitor 对象,如果使用 synchronized 给对象上锁(重量级)之后,该对象头的 Mark Word 中就被设…

基于改进萤火虫算法的图像分割的应用(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

【信管2.4】项目运行环境与项目经理

项目运行环境与项目经理加餐加餐来了哦,今天的内容在 《信息系统项目管理师教程》 这本教材里是没有的,而且在 PMBOK 第五版中也是没有的。这部分内容是 PMBOK 第六版中新加的两个独立章节,不过内容不多,非常轻松,重点…

01 - 进阶操作系统(BIOS)

---- 整理自狄泰软件唐佐林老师课程 1. BIOS - Base input & Output system BIOS是上电后第一个运行的程序 BIOS首先检测硬件状态,检测通过后立即进行硬件初始化工作 BIOS会在内存中建立中断向量表(提供硬件访问的方法) BIOS最后将控制…

[附源码]计算机毕业设计JAVA校园飞毛腿系统

[附源码]计算机毕业设计JAVA校园飞毛腿系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis …

前后端分离项目的https加密解密过程二、名词解析及文件生成

前后端分离项目的https加密解密过程二、名词解析及文件生成 密钥仓库keystore文件 Keytool是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中 keystore文件的内容其实就是把私钥、公钥以及公钥对应的地址等信息…

【附源码】计算机毕业设计JAVA众筹平台网站

【附源码】计算机毕业设计JAVA众筹平台网站 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

leetcode:1579. 保证图可完全遍历【并查集思路】

目录题目截图题目分析ac code总结题目截图 题目分析 从删除比较难,考虑增加增加的过程中无用的边就可以删除考虑alice和bob各自的联通分量最后希望都是1,一开始都是n如果将两个独立的联通分量连起来了,那么连通分量个数减1这里很明显就是用并…

Kafka集群环境搭建及基本使用

前提条件 操作系统:CentOS7服务器:3台Java环境:JDK1.8。安装教程参考JDK1.8安装Zookeeper环境 搭建教程参考Zookeeper集群环境搭建及使用Kafka基础知识参考Kafka角色及功能概览 搭建步骤 下载 执行下载命令wget https://archive.apache.o…

全程软件自动化测试

软件自动化测试的概念 “什么是软件自动化测试?”也许很多人的回答是:“使用自动化测试工具或者编写自动化脚本来自动化测试软件”,还有一些权威网站,比如 WikiPedia 是这样定义的: “在软件测试中,自动化…

(三) 共享模型之管程【共享带来的问题】

一、共享带来的问题 1. 临界区 (1)一个程序运行多个线程本身是没有问题的 (2)问题出在多个线程访问共享资源 1️⃣多个线程读共享资源其实也没有问题 2️⃣在多个线程对共享资源读写操作时发送指令交错,就会出现问题 …

清朝盛衰的六个时间点!

清朝盛衰的整个过程经历了六个时间节点: 一六六一年﹙顺治十八年﹚是第一个时间节点。 正月初六夜半时分,顺治帝预感生命垂危,急命太监传呼麻勒吉与王熙两人赶赴养心殿。帝对王熙说:“朕出痘,势将不起,尔…

三、【react-redux】数据共享

文章目录1、优化项目结构2、添加一个新容器组件2.1、新项目结构2.2、CODE2.2.1、reduc/constant.js2.2.2、redux/actions/person.js2.2.3、redux/reducers/person.js2.2.4、redux/store.js2.2.5、Count.jsx2.2.6、Person.jsx2.3、Result3、总结本示例修改自 上一章 求和Demo 1、…

前端js传入Long类型精度丢失解决办法

目录 问题背景 解决过程 1.对比数据库数据 2.查询资料 解决方法 问题背景 在进行业务开发的 时候发现更新数据库中的一条数据没有成功,查看SQL日志发现SQL正常执行无错误信息,但是受影响行数为0,但是数据是从前端传过来的 ,一…

地图数据设计(四):地图比例尺

前言 比例尺作为地图数学基础的组成部分之一,表示了地图的空间尺度,是地图精度和内容详尽程度的决定因素。今天的文章将从比例尺的基本概念、常见比例尺参数以及SuperMap iDesktopX中比例尺设置三个方面展开。 1 比例尺的基本概念 1.1 定义 一般来说&am…

GmNAC181促进结瘤并提高根瘤的耐盐性

文章信息 题目:GmNAC181 promotes symbiotic nodulation and salt tolerance of nodulation by directly regulating GmNINa expression in soybean 刊名:New Phytologist 作者:Xiaodi Wang,Youning Wang, Xia Li et al. 单位…

【SQL】数据库事务

【SQL】数据库事务事物的ACID特性事务的状态显式事务隐式事务事务的使用举例SQL中的四种隔离级别MySQL中的隔离级别如何设置事务的隔离级别innodb默认支持事务事务是一组逻辑操作单元,使数据从一种状态转变到另一种状态事物的ACID特性 原子性(atomicity…