从加解密到HTTPS
一、名词解释明文未经加密的信息。密文加了密的信息。密钥加解密时供算法使用的密码相当于我们的银行密码另一种说法是盐值。私钥个人所有的不经公开的密钥。公钥公开的密钥。二、加密和解密1、含义明文通过一定的算法转换成密文的过程就是加密相反将密文通过使用加密时用的相同算法进行逆运算得到明文的过程就是解密。比如密钥是1明文是100算法是加减法加密过程明文100--加密1001101--密文101解密过程密文101--解密101-1100--明文1002、对称加密对称加密就是指加密和解密的密钥是相同的。特点是安全系数不高但性能高加解密快。3、非对称加密非对称加密就是指加密用的密钥和解密的密钥是不相同的。一般来说指:加密时使用公钥,解密时使用私钥。CS架构中私钥只存在于服务端客户端只持有公钥具有加密能力。特点是安全系数高但性能低算法复杂加解密慢。4、SSL与TLSSSL是结合对称加密和非对称加密各自的优点的产物其运用于HTTPS中有效地解决了数据在网络传输中的安全问题不再像HTTP那样让数据以明文方式在网络中裸跑了。HTTPS中SSL的加解密过程一次HTTPS请求中客户端和服务端先要确定加密的密钥然后才是正式的数据传输。客户端会先向服务端索要公钥然后自己生成对称加密的密钥随机数然后用公钥加密对称加密的密钥将其发送给服务端最后各自通过对称加密的密钥对传输的数据进行加密传输。目前SSL已经被淘汰现在使用的都是TLS 1.2或者1.3。他们二者机制大体同源但SSL所有的版本都不安全现在HTTPS底层只跑TLS。三、数字证书1、含义和分类证书顾名思义证明某种东西确实是某样东西。如学校给你发的毕业证书一样是大家认可的证明你是某某大学毕业的证书上也有学校的公章。但你某天去找工作说自己某某大学毕业的你不能口头说啊公司又不傻肯定不信要你出示证书加以证明。其实HTTPS的公钥也是通过数字证书传递的证书不仅包括公钥信息还包含了公司域名公司名称地址证书的颁发机构证书的过期时间等等。HTTPS用到的证书被称为SSL证书当然还包括其他证书具体分类SSL证书代码证书客户端证书双因素证书2、证书的制作1jdk内网调试2上线申请阿里云、腾讯云DV免费证书外网3、证书的大致内容公钥、算法、证书颁发者、证书的过期时间、密钥等根证书证书有很多类别如果不加以区分让一个对象来负责颁发所有的证书那么无疑会增加其负重。所以就像公司一样针对不同的功能设立不同的部门分别负责各自的职责范围的事这样不仅对事务进行了平摊减轻单个的负重而且也减少了出错的概率。其实证书的管理机制也是如此先由一个大的根证书分散出分支证书形成证书路径。如果根证书验证不通过或者不受信任其下的所属证书也是无效的。证书路径如下图就是证书路径的展示。其大致表示*.csdn.net的证书由Geo Trust CN RSA CA G1颁发而它又是根证书Digicert管理、授权。4、CACA是Certificate Authority的缩写也叫“证书授权中心”专门颁发权威证书的机构。证书是可以自己制作的但是在实际应用中如何确保证书的安全可靠呢那就必须有个受信任的机构或公司专门来做这事儿。CA就是这样的机构。四、HTTPS1、含义HTTPSHyperText Transfer Protocol Secure安全版超文本传输协议。可以说HTTPS HTTP通信 TLS加密 数字证书身份认证。其中http负责说话的内容TLS负责加密说话的内容数字证书SSL证书负责验证对方身份。扩展HSTSHSTS是国际互联网工程组织 IETE 正在推行一种新的 Web安全协议HTTP Strict Transport SecurityHSTS。采用 HSTS 协议的网站将保证浏览器始终连接到该网站的 HTTPS 加密版本不需要用户手动在 URL 地址栏中输入加密地址。每次访问时都会发送该请求头失效时间是两年秒数这个失效时间每次都会设置为两年后:Strict-Transport-Security max-age63072000; includeSubdomains; preload2、HTTPS握手工作流程①、你打开网页服务器主动把数字证书发给浏览器②、浏览器校验证书真伪CA签名、有效期、域名匹配假证书直接报错③、校验通过读取证书里的公钥④、浏览器随机生成一把会话密钥用公钥加密后发给网站服务器⑤、只有网站自己的私钥能解开拿到会话密钥后续双方用会话密钥加密传输数据全程就算是数据被黑客拦截也只是乱码。ps公钥放在证书里公开随便看用来加密而私钥是网站服务器自己保存绝不外传用来解密。3、黑客攻击如果你是黑客要怎么去攻击https通信窃取他们之间的通信讯息呢①、中间人劫持客户端公钥会话密钥- 黑客看不到会话密钥因为会话密钥只能私钥才能解于是黑客伪装客户端将公钥黑客会话密钥发送给服务器- 服务器拿到黑客给的公钥加密后会话密钥与黑客通信。这个过程中黑客始终是不知道客户端与服务器的会话密钥的只会让客户端和服务器对不上暗号通信失败窃取不到数据。②、中间人伪造证书中间人这次伪装成服务器伪造一套公私钥假装自己就是服务器。客户端 - 中间人黑客假服务器-真服务器对于客户端黑客就是服务器对于真服务器黑客就是客户端。所以就达到窃听了但是客户端有办法鉴别黑客伪装的服务器因为浏览器会自动校验对方的证书如果是非受信任非正规证书机构颁发的的就会告警这时客户端是能感知到的于是就拒绝访问从而避免窃听。面试题既然说https是安全的为什么抓包工具还是能窃听到明文信息呢答抓包工具就是利用中间人伪造证书的方式然后你也同意了这种非受信任的证书的通信。五、利用JDK工具生成自签证书我们在开发https协议的Web应用时需要先在本地进行调试或者在内网服务实现https时。我们希望自己就能生成自签的证书、以及公钥私钥。那么JDK的keytool工具就能实现这点以下分解聊下怎么使用该工具。1、前置条件①、配置好JDK环境变量cmd 终端输入keytool -version能输出版本即生效②、Windows使用CMD/PowerShellMac上使用Linux终端2、核心概念密钥库.keystore/.jks二进制文件用来存放一对公私钥字签证书JavaWebSpringBoot、Tomcat默认读取jks密钥库。公钥封装在证书里对外公开私钥存放在密钥库内部绝不泄漏字签证书自己给自己发证浏览器不信任。3、一键生成JKS密钥库keytool -genkeypair -alias myhttps -keyalg RSA -keysize 2048 -storetype JKS -keystore myssl.jks -validity 365参数解释-alias myhttps密钥别名一个密钥库可以存多组密钥别名区分-keyalg RSA加密算法HTTPS标准RSA-keysize 2048密钥长度安全最低标准-storetype JKS密钥库格式Java专用-keystore myssl.jks生成的密钥库文件名-validity 365证书有效期365天执行后依此填写信息1、密钥库口令设置密码1234562、姓名、组织、城市、省份、国家3、是否正确4、密钥口令可和密钥库口令一致直接回车执行完毕后当前文件夹生成myssl.jks文件4、从JKS文件中导出证书导出公钥证书浏览器需要的公钥直接从证书中获取。keytool -exportcert -alias myhttps -keystore myssl.jks -file public.cer执行后提示输入密钥库密码之后就会得到public.cer文件这个文件里包含了公钥证书信息可以发给其他人。私钥还是在jks文件内部无法从cer证书提取私钥5、把证书导入JDK信任库这步是为了解决本地调用接口报证书不信任。本地Java后端调用自己的HTTPS接口报错SSL握手失败把cer导入JDK信任列表。keytool -import -alias myhttps-trust -file public.cer -keystore %JAVA_HOME%\jre\lib\security\cacerts执行后提示输入信任库密码默认changeit6、SpringBoot项目配置Httpsapplication.ymlserver: port:8443 ssl: key-store:classpath:myssl.jks key-store-password:123456 key-alias:myhttps key-store-type:JKS启动项目访问https://127.0.0.1:8443浏览器提示不安全属于正常现象字签证书选择继续访问即可调试

相关新闻

Android开源项目终极宝典:200+精选资源助你快速提升开发效率

Android开源项目终极宝典:200+精选资源助你快速提升开发效率

Android开源项目终极宝典:200精选资源助你快速提升开发效率 【免费下载链接】android-open-project A categorized collection of Android Open Source Projects, More powerful web version: 项目地址: https://gitcode.com/GitHub_Trending/an/android-open-pro…

2026/10/20 9:53:18 阅读更多 →
ChatBox终极指南:5分钟搭建你的个人AI助手桌面客户端

ChatBox终极指南:5分钟搭建你的个人AI助手桌面客户端

ChatBox终极指南:5分钟搭建你的个人AI助手桌面客户端 【免费下载链接】chatbox Powerful AI Client 项目地址: https://gitcode.com/GitHub_Trending/ch/chatbox ChatBox是一款强大的AI模型桌面客户端,支持ChatGPT、Claude、Google Gemini、Ollam…

2026/10/20 19:40:54 阅读更多 →
Ubuntu系统下安装docker(GPU版)

Ubuntu系统下安装docker(GPU版)

一、参考资料 Repository configuration docker学习笔记(9):nvidia-docker安装、部署与使用 怎么在docker中使用nvidia显卡 docker使用GPU总结 二、相关介绍 Nvidia安装nvidia-docker官方教程 最初的docker是不支持gpu的 为了让docker支持…

2026/10/19 23:16:29 阅读更多 →

最新新闻

Django生产级博客骨架源码:零配置启动+可部署结构

Django生产级博客骨架源码:零配置启动+可部署结构

简介:这是一套基于Django框架从零开始构建的个人博客网站完整源码,面向Python后端初学者与Web开发入门者,帮助学习者系统掌握Django项目结构、ORM建模、模板渲染、静态资源管理及基础部署流程。压缩包共421个文件,涵盖26个核心Pyt…

2026/10/20 19:41:21 阅读更多 →
PyTorch项目实战:从零搭建图像分类的避坑指南

PyTorch项目实战:从零搭建图像分类的避坑指南

1. 从零手搓一个PyTorch项目:一个老手的踩坑与实战笔记搞深度学习这几年,PyTorch几乎成了我每天都要打交道的工具。但说实话,真正让我头疼的从来不是写模型结构本身,而是从环境配置到训练调优这一整条链路上那些琐碎又致命的细节。…

2026/10/20 19:41:21 阅读更多 →
多虚拟电厂主从博弈与ACPSO-EI-Kriging及APVP-MHA-MTL预测框架全解析

多虚拟电厂主从博弈与ACPSO-EI-Kriging及APVP-MHA-MTL预测框架全解析

先说结论:这个标题的含金量主要在“组合方式”,而不是单点技术。ACPSO、EI、Kriging、主从博弈、APVP、MHA、MTL,每一个单拎出来都有大量现成资料,但把它们按“上层优化下层代理博弈交互”和“多任务注意力共享表征预测”两条线组…

2026/10/20 19:41:21 阅读更多 →
改进DINO-4scale模型实现棉田作物生长监测与目标检测

改进DINO-4scale模型实现棉田作物生长监测与目标检测

棉田生长监测这件事,做农业视觉的人应该深有体会:无人机拍回来的正射影像分辨率很高,但地面棉株一进入封行期,棉铃、棉蕾全被叶片盖住,人工看图数起来又慢又晕。更麻烦的是,棉田目标天生就“小、密、遮挡多…

2026/10/20 19:41:21 阅读更多 →
降AI率实操指南:6类免费工具与人工精修方法

降AI率实操指南:6类免费工具与人工精修方法

每年四五月份,总有学弟学妹半夜给我发消息,上来就问:“论文AI率80%多,学校查重前要求降到10%以下,怎么办?”说实话,这个问题我自己当年也撞上过,被检测报告上的高百分比吓得连夜改稿…

2026/10/20 19:41:21 阅读更多 →
WebSocket消息推送实战:从轮询到高并发长连接的全流程拆解

WebSocket消息推送实战:从轮询到高并发长连接的全流程拆解

接手过一个实时通知服务,业务上要求订单状态变更、客服会话、后台告警都要在秒级内推到用户端。最开始图省事用HTTP轮询,连接一多业务一复杂就明显顶不住——服务端压力大、客户端拿到的数据也不是实时的,高峰时段光无效请求就能把接口拖垮。…

2026/10/20 19:40:18 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →