Netty使用SSL实现双向通信加密

最近项目有个需求,TCP服务器实现基于证书通信加密,之前没做过,花了一些时间调研,今天整理下。
SSL(Secure Sockets Layer 安全套接字协议)

1、原理

在这里插入图片描述

算法原理

简而言之就是非对称加密算法
私钥自己持有,公钥发给对方,对方在发送信息的时候使用公钥进行加密数据,当接收到数据之后使用私钥进行解密。

CA原理

数字证书也就是你的身份证
CA 也叫证书颁发中心,可以类比为公安局,公安局可以对你发放身份证。
拿着你的身份证去CA验证。

验证原理

先预想一个场景,如果有10台计算机,10台计算机需要记住相互之间的公钥(publickey),
那有100台计算机,1000台呢? 他们之间都需要记住相互的公钥吗?
答案肯定是不能,那如何解决这些问题呢?
其实很简单,有个第三方中介机构。记住了这些1000台的公钥相对应的资料。
这种机构称为认证机构(Certification Authority, CA)。
CA开一个证明这是计算机A的信息,发给B计算机。
B计算机通过CA的证明,可以确认这是A计算机的信息。

◆ 如何生成证书?
A计算机将自己的【公钥A】给CA
CA用自己的【私钥CA】给【公钥A】加密,生成【数字签

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

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

相关文章

C# 数组相关操作

一。int[] 类型数组 1.求int[]数组中的最大值和最小值 int[] intArrnew int[]{ 1,2,3,4,5,-24,66};int a intArr.Max();int b intArr.Min();Console.WriteLine(a); //最大值为66Console.WriteLine(b); //最小值为-24 2.判断int[]数组中是否包含某个值 int[] intArrnew int[]…

IPA打包过程中的Invalid Bundle Structure错误如果解决

在iOS应用程序开发中,打包和发布应用程序是一个必要的步骤。有的时候在打包的过程中可能会遇到一些错误,其中一个比较常见的错误是"Invalid Bundle Structure"。这个错误通常意味着应用程序的文件结构不正确,而导致的无法成功打包应…

ShardingJDBC简单使用

Sharding-JDBC是当当网开源的适用于微服务的分布式数据访问基础类库,完整的实现了分库分表,读写分离和分布式主键功能,并初步实现了柔性事务。Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。其适用于任何基于…

【NLP】2024年改变人工智能的前六大NLP语言模型

在快速发展的人工智能领域,自然语言处理已成为研究人员和开发人员关注的焦点。作为这一领域显著进步的证明,近年来出现了几种开创性的语言模型,突破了机器能够理解和生成的界限。在本文中,我们将深入研究大规模语言模型的最新进展…

精准快速定位的locate

精准快速定位的locate Linux locate命令用于查找符合条件的文档、程序、目录等等。这个命令会在数据库中查找符合条件的各种信息。 一般情况我们只需要输入 locate name 即可查找。 官方定义为: locate - list files in databases that match a pattern 使用方法为: $ lo…

ubuntu2204,mysql8.x安装

ubuntu 2204, MySQL8.x安装 sudo apt-get update sudo apt-get upgrade# 习惯性的先设置一下时区,这里我使用东八区 date -R # 若发现时间正常则无需设置tzselect# 依次选择 4 -> 10 -> 1 -> 1cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimedate -R# 同步时间…

ElementuiPlus文件上传失败原因,一个小坑记录!

记录一个自己犯得错误,一定记住要前后端file名字对应上! 原后端代码 RestController RequestMapping("/upload") public class UploadFileController {PostMappingpublic Result upload(MultipartFile multipartFile) throws IOException {S…

简单Diff算法

简单Diff算法 渲染器的核心 Diff算法 解决的问题 比较新旧虚拟节点的子节点,实现最小化更新。 虚拟节点key属性的作用 就像虚拟节点的“身份证号”,在更新时,渲染器会通过key属性找到可复用的节点,然后尽可能地通过DOM移动操…

GraalVM Native学习及使用

概述 在开发Spring Boot 应用或者其他JAVA程序的过程中,启动慢、内存占用大是比较头疼的问题,往往需要更多的资源去部署,成本大幅提高。为了优化上述问题,常常使用优化程序、使用更小消耗的JVM、使用容器等措施。 现在有一个叫做…

一起读《奔跑吧Linux内核(第2版)卷1:基础架构》- 大小端字节序

关注 点赞 不错过精彩内容 大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! Hello,大家好我是硬核王同学,是一名刚刚工作一年多的Linux工程师&#xff0…

计算机网络(9):无线网络

无线局域网 WLAN 无线局域网常简写为 WLAN (Wireless Local Area Network)。 无线局域网的组成 无线局域网可分为两大类。第一类是有固定基础设施的,第二类是无固定基础设施的。所谓“固定基础设施”是指预先建立起来的、能够覆盖一定地理范围的一批固定基站。 …

关于java的递归

关于java的递归 本篇文章来了解以下java方法的最后一个基础知识,递归,递归是一个非常简便的东西,也是一个非常危险的东西🤣下面向大家仔细说明以下什么是递归,以及递归的注意事项,实现逻辑等。 递归 我们…

mapboxgl 中给地图添加遮罩蒙版,并不遮罩其中一块区域

文章目录 概要效果预览技术思路技术细节小结 概要 本篇文章主要是给一整块地图添加遮罩层蒙版,但是不遮罩其中一个区域,以反向高亮地区内容。 效果预览 技术思路 这里要实现某个区域反显高亮,需要这个区域的边界json文件,与ech…

java 类和对象的概念

类和对象的概念 面向对象当中最主要“一词”是:对象。 什么是类? 类实际上在现实世界当中是不存在的,是一个抽象的概念,是一个模板,是我们人类大脑进行思考、总结、抽象的一个结果。 (主要是因为人类的大脑…

每天五分钟计算机视觉:为什么要去GitHub寻找开源代码实现方案?

计算机视觉技术是当前人工智能领域的热门方向之一,其在许多领域都有着广泛的应用,如自动驾驶、智能安防、医疗诊断等。由于计算机视觉技术涉及到的算法和数据处理较为复杂,因此对于初学者来说,从零开始编写代码实现相关算法可能会…

69. X的平方根

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1&#xff1…

案例088:基于微信小程序的校车购票平台设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

ASP.NET Core AOT

Native AOT 最初在 .NET 7 中引入,在即将发布的 .NET 8 版本中可以与 ASP.NET Core 一起使用。在这篇文章中,我们从总体角度审视其优点和缺点,并进行测量以量化不同平台上的改进。 源代码:https://download.csdn.net/download/he…

ebay产品名称规则是什么?eBay产品主图规则是什么?-站斧浏览器

ebay产品名称规则是什么? 1、简洁明了:在eBay上,产品命名应该简洁明了,避免使用过长或复杂的词汇。买家通常会使用关键词搜索商品,因此使用简洁的命名可以提高产品在搜索结果中的排名。 2、准确描述:产品…

《使用ThinkPHP6开发项目》 - ThinkPHP6创建菜单模块

#CSDN 年度征文|回顾 2023,赢专属铭牌等定制奖品# 一、创建菜单模块 1、创建系统菜单表 CREATE TABLE menu (id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 菜单ID,menu_name varchar(32) NOT NULL DEFAULT COMMENT 菜单名称,path varchar(2…