当前位置: 首页 > news >正文

深入浅出:HTTPS单向与双向认证及证书解析20231208

介绍:

网络安全的核心之一是了解和实施HTTPS认证。本文将探讨HTTPS单向认证和双向认证的区别,以及SSL证书和CA证书在这些过程中的作用,并通过Nginx配置实例具体说明。

第一部分:HTTPS单向认证

  • 定义及工作原理:HTTPS单向认证是一种安全协议,其中只有服务器向客户端证明其身份。这是通过服务器提供SSL证书来实现的,客户端将验证此证书以确保服务器的真实性和信任度。这种认证方法常用于大多数客户端-服务器通信,如访问网站。

ssl_certificate 指向服务器的SSL证书文件(.crt),这个证书可以是由可信证书颁发机构(CA)签发的,也可以是自签名的。ssl_certificate_key 指向与SSL证书相对应的私钥文件(.key)。这个私钥是在生成证书时创建的,必须保密。

在这里插入图片描述

图片说明:

这张图展示了在单向认证中,服务器如何向客户端提供SSL证书,以及客户端如何进行验证的过程。

  • 服务器提供证书:在这个过程中,服务器首先向客户端提供其SSL证书。这一步骤类似于某人出示其身份证明。
  • 客户端验证证书:接着,客户端收到证书并进行验证。验证步骤包括检查证书是否由可信的证书颁发机构签发、证书是否有效(未过期)、以及证书中的域名是否与服务器的域名匹配。
  • 建立加密通信:一旦客户端验证了服务器的证书,并确认其可信,就会与服务器建立加密的通信连接

趣味举例

想象一下,你在一家豪华餐厅的门口,门卫需要验证你的身份才能让你进入。这就像HTTPS单向认证,只不过在这里,餐厅(服务器)需要向你(客户端)展示它的身份证(SSL证书)。这样做的目的是让你确信自己没有走错门,不会误入“钓鱼网站”的陷阱。

Nginx配置实例:

server {listen 443 ssl;server_name example.com;ssl_certificate /path/to/your/certificate.crt;ssl_certificate_key /path/to/your/private.key;ssl_protocols TLSv1.2 TLSv1.3;# 其他必要的配置...
}

第二部分:HTTPS双向认证

  • 定义及工作原理:在HTTPS双向认证中,客户端和服务器都需要证明彼此的身份。这不仅要求服务器提供SSL证书,还要求客户端提供自己的证书。服务器将验证客户端证书的有效性,这种方法用于高安全要求的场景,如企业内部网络或金融交易。

服务器端的配置同单向认证,但额外增加了ssl_client_certificate 和ssl_verify_client 指令。ssl_client_certificate 指向用于验证客户端证书的CA证书文件。这通常是一个CA的公共证书文件。ssl_verify_client on; 表示服务器将验证连接到此服务器的客户端证书。
在这里插入图片描述

图片说明:

这张图描绘了双向认证过程,其中服务器和客户端互相提供SSL证书,并进行相互验证。

  • 双方互相提供证书:在双向认证中,服务器和客户端都需要提供各自的SSL证书。这意味着双方都要出示身份证明。
  • 互相验证证书:服务器将验证客户端的证书,而客户端则验证服务器的证书。这个过程确保了双方的身份都得到确认。
  • 建立双向加密通信:双方证书一旦都被验证为有效,就会建立一个双向加密的通信通道。

趣味举例

现在,情况变得更有趣了。你不仅需要确认餐厅是真的,餐厅也想确认你是邀请的贵宾,而不是闲杂人等。这就是HTTPS双向认证的情景。这里,除了餐厅(服务器)向你展示身份证外,
你也得拿出你的VIP卡(客户端证书)来证明自己的身份。

Nginx配置实例:

server {listen 443 ssl;server_name example.com;ssl_certificate /path/to/your/certificate.crt;ssl_certificate_key /path/to/your/private.key;ssl_client_certificate /path/to/ca_certificate.crt;ssl_verify_client on;ssl_protocols TLSv1.2 TLSv1.3;# 其他必要的配置...
}

第三部分:SSL证书

  • 定义:SSL证书(现在通常称为TLS证书)是由CA签发给特定实体(如网站、服务器、客户端)的数字证书。
  • 角色:SSL证书在建立加密的HTTPS连接和身份验证方面起着核心作用。它包含公钥,用于加密客户端和服务器之间的通信,同时证书本身作为身份验证的一部分。
  • 获取方式:SSL证书可以从公认的证书颁发机构(CA)获取,这些证书广泛被信任。也可以生成自签名证书,但这通常只适用于测试环境或内部使用,因为它们不被外部实体普遍信任。
    在这里插入图片描述

图片说明:

这张信息图展示了SSL证书在建立加密连接和身份验证中的关键作用。

  • 身份验证:SSL证书首先用于身份验证。证书证明了服务器(或在双向认证中的客户端)的身份。
  • 加密通信:证书包含公钥,用于加密数据。这保证了数据在客户端与服务器之间传输时的安全性和隐私。
  • 信任建立:由于证书通常由受信任的CA签发,因此它也起到了建立用户对网站信任的作用。

用途:

  • 身份验证:用于证明服务器或客户端的身份,确保您正在与预期的实体通信。
  • 加密通信:包含公钥,用于建立加密的HTTPS连接,确保数据在传输过程中的安全。

与CA证书的关系:

  • SSL证书通常由CA签发,证书中包含了由CA的私钥加密的签名,表明该证书是由特定的CA验证和签发的。
  • 客户端(如浏览器)通过验证SSL证书上的签名,来确认证书的真实性。这一过程需要使用对应CA的公钥,通常包含在CA证书中。

趣味举例

SSL证书就像是网络世界的身份证。它们证明网站的身份,并且确保你输入的数据被神秘的加密算法保护,使之在网络传输中不被窃听或篡改。
你可以从一家像是身份证办公室的机构——证书颁发机构(CA)——获取这种证书,或者你可以自己动手制作一个(自签名证书),虽然后者在安全性上可能不那么令人信服。

第四部分:CA证书

  • 定义和作用:CA证书由证书颁发机构颁发,用作建立数字证书信任链的根基。它们验证和签发其他证书,如SSL证书。
  • 公共CA与私有CA:公共CA像是全球认可的证书发行机构,提供广泛认可的证书,而私有CA主要用于特定组织或私有网络,提供特定环境下的证书。

趣味举例

CA证书是由证书颁发机构发行的,它们在数字世界中的作用就像是政府的认证印章。这些证书确立了一个信任链,告诉你:“嘿,你可以信任这个网站。” 公共CA就像是国际认可的护照发行机构,而私有CA更像是某个秘密社团的内部身份验证系统,只在特定的小圈子内受信任。

第五部分:实际应用中的考虑因素选择认证方式:

选择单向认证或双向认证取决于所需的安全级别和应用场景。单向认证适用于大多数公共网站,而双向认证更适合于需要高度安全验证的环境,如企业网络或敏感数据交换。
选择使用单向认证还是双向认证,就像是在安全和便利之间做出选择。如果你运营的是一家大众面向的在线商店,那么单向认证就足够了——就像只需要门卫检查顾客的身份一样。但如果你管理着一个包含敏感数据的企业网络,双向认证就显得至关重要了——这就像一个高安全级别的设施,需要双重验证才能进入。

CA的种类

公共CA

  • 全球范围内的CA:确实存在一些大型的、公认的CA,如Let’s
    Encrypt、VeriSign、DigiCert、Comodo等。这些CA被广泛信任,并且它们签发的证书被全球大多数浏览器和操作系统接受。
  • 受信任的CA:这些CA在其业务运营中受到严格的规范和监管。它们的根证书通常被包含在主流浏览器和操作系统中,这使得它们签发的证书被广泛信任。

私有CA

  • 组织内部的CA:某些组织可能会运营自己的私有CA,用于内部网络和服务的证书管理。这些私有CA通常不被外部实体信任,除非它们的根证书被手动导入到信任存储中。
  • 服务端作为CA:理论上,任何服务端都可以设置为CA,签发证书给其他实体(如其他服务器、客户端设备)。但这些自签名的证书默认不被外部实体信任,除非它们的根证书被明确地添加到信任列表中。
    在这里插入图片描述

图片说明:

这张插图对比了公共CA和私有CA,突出了它们在不同场景下的应用和差异。

  • 公共CA:公共CA(如Let’s Encrypt,
    DigiCert)是广泛认可的机构,它们提供的证书被全球大多数浏览器和操作系统信任。适用于面向公众的网站和服务。
  • 私有CA:私有CA通常用于特定组织内部,比如企业内网。它们签发的证书主要用于内部应用和服务,通常不被外部实体认可

自签名证书

  • 自签名:实体(如个人或组织)也可以创建自签名证书,这相当于自己作为CA。这些证书在开发和测试环境中非常有用,但由于缺乏外部验证和信任,它们通常不适合公开使用。

客户端证书

每个客户端通常拥有自己的唯一证书。这个证书由CA签发,并包含特定于该客户端的信息(如公钥、身份信息等)。虽然每个客户端证书是唯一的,但多个证书可以由同一个CA签发。

信任和验证

  • 信任问题:自签名证书或私有CA签发的证书在未被明确信任的情况下会引发安全警告。这是因为浏览器和操作系统无法验证这些证书的来源。
  • 用途和环境:对于公共面向的网站和服务,建议使用公认的CA签发的证书,以确保终端用户的信任和安全。对于内部网络和特定用途,私有CA或自签名证书可能是合适的选择。

结论:

理解和正确实施HTTPS认证及其证书管理对于保障网络安全至关重要。希望本文能帮助您在这方面获得更深入的了解。

相关文章:

深入浅出:HTTPS单向与双向认证及证书解析20231208

介绍: 网络安全的核心之一是了解和实施HTTPS认证。本文将探讨HTTPS单向认证和双向认证的区别,以及SSL证书和CA证书在这些过程中的作用,并通过Nginx配置实例具体说明。 第一部分:HTTPS单向认证 定义及工作原理:HTTPS单向认证是一…...

水利安全监测方案——基于RTU200的解决方案

引言: 水资源是人类赖以生存的重要基础,对于保障水利系统安全运行以及应对自然灾害起着关键作用。为了实现水利安全监测的目标,我们提出了基于RTU200的解决方案。本方案将结合RTU200的可靠性、灵活性和高效性,为您打造一个全面的…...

安卓开发学习---kotlin版---笔记(一)

Hello word 前言:上次学习安卓,学了Java开发,简单的搭了几个安卓界面。这次要学习Kotlin语言,然后开发安卓,趁着还年轻,学点新东西,坚持~ 未来的你会感谢现在努力的你~ 主要学习资料&#xff1a…...

挑选在线客服系统的七大注意事项

越来越多的企业开始注重客户服务,所以在线客服系统也逐渐成为了电商企业不可或缺的一部分。然而在挑选在线客服系统的过程中,蛮多企业会遇到各种各样的问题,这就导致了最终选择的系统并不适合自己企业的需求。接下来我将提醒大家挑选在线客服…...

剧本杀小程序搭建:打造线上剧本杀新体验

剧本杀是一款以角色扮演为主的游戏,一度成为了年轻人的最喜爱的社交游戏。在剧本杀市场需求下,剧本杀规模也迅速上升。今年第一季度,剧本杀市场规模环比增长47%,市场整体消费水平逐渐呈上升趋势。 随着剧本杀的不断发展&#xff…...

机器学习实战:预测波士顿房价

前言: Hello大家好,我是Dream。 今天来学习一下机器学习中一个非常经典的案例:预测波士顿房价,在此过程中也会补充很多重要的知识点,欢迎大家一起前来探讨学习~ 一、导入数据 在这个项目中,我们利用马萨诸…...

基于个微机器人的开发

简要描述: 下载消息中的动图 请求URL: http://域名/getMsgEmoji 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明…...

程序员学习方法

https://www.zhihu.com/question/24187324 https://www.zhihu.com/question/505750740 windows系统: 如何业余开展 Windows 系统的学习? - 知乎 wifi工作原理: WiFi的工作原理是什么? - 知乎 发...

VUE+THREE.JS 点击模型相机缓入查看模型相关信息

点击模型相机缓入查看模型相关信息 1.引入2.初始化CSS3DRenderer3.animate 加入一直执行渲染4.点击事件4.1 初始化renderer时加入监听事件4.2 触发点击事件 5. 关键代码分析5.1 移除模型5.2 创建模型上方的弹框5.3 相机缓入动画5.4 动画执行 1.引入 引入模型所要呈现的3DSprite…...

cpu 300% 爆满 内存占用不高 排查

top查询 cpu最高的PID ps -ef | grep PID 查看具体哪一个jar服务 jstack -l PID > ./jstack.log 下载/打印进程的线程栈信息 可以加信息简单分析 或进一步 查看堆内存使用情况 jmap -heap Java进程id jstack.log 信息示例 Full thread dump Java HotSpot(TM) 64-Bit Se…...

Halcon 简单的ORC 字体识别

文章目录 仿射变化识别 仿射变化 将图片进行矫正处理 dev_close_window() read_image(Image,C:/Users/Augustine/Desktop/halcon/image.png) *获取图片的大小 get_image_size(Image, Width, Height) *仿射运算获取图片的角度对图片进行矫正 *选中图片的区域 gen_rectangle1 (Re…...

12月7日作业

使用QT模仿一个登陆界面(模仿育碧Ubisoft登录界面) #include "myqq.h"MyQQ::MyQQ(QWidget *parent): QMainWindow(parent) {this->resize(880,550); //设置窗口大小this->setFixedSize(880,550); //固定窗口大小this->setStyleShee…...

【腾讯云HAI域探密】- AIGC应用助力企业降本增效之路

一、前言: 近年来,随着深度学习、大数据、人工智能、AI等技术领域的不断发展,机器学习是目前最火热的人工智能分支之一,是使用大量数据训练计算机程序,以实现智能决策、语音识别、图像处理等任务。 作者也是经过了以上…...

云原生之深入解析如何限制Kubernetes集群中文件描述符与线程数量

一、背景 linux 中为了防止进程恶意使用资源,系统使用 ulimit 来限制进程的资源使用情况(包括文件描述符,线程数,内存大小等)。同样地在容器化场景中,需要限制其系统资源的使用量。ulimit: docker 默认支持…...

Django的Auth模块

Auth模块 我们在创建好一个Django项目后执行数据库迁移命令会自动生成很多表 其中有auth_user等表 Django在启动之后就可以直接访问admin路由,需要输入用户名和密码,数据参考的就是auth_user表,并且必须是管理员才能进入 依赖于a…...

敏捷开发方法

理解: 极限编程(XP):敏捷开发的典型方法之一,是一种轻量级(敏捷)、高效,低风险、柔性、可预测的、科学的软件开发方法,它由价值观、原则、实践和行为4个部分组成。其中4大…...

vue 前端实现login页登陆 验证码

实现效果 // template <el-form :model"loginForm" :rules"fieldRules" ref"loginForm" label-position"left" label-width"0px" class"login-container"><span class"tool-bar"></sp…...

python 涉及opencv mediapipe知识,眨眼计数 供初学者参考

基本思路 我们知道正面侦测到人脸时&#xff0c;任意一只眼睛水平方向上的两个特征点构成水平距离&#xff0c;上下两个特征点构成垂直距离 当头像靠近或者远离摄像头时&#xff0c;垂直距离与水平距离的比值基本恒定 根据这一思路 当闭眼时 垂直距离变小 比值固定小于某一个…...

HTTP 和 HTTPS的区别

一、HTTP 1.明文传输&#xff0c;不安全 2.默认端口号&#xff1a;80 3.TCP三次握手即可 二、HTTPS 1.加密传输&#xff0c;更安全(在HTTP层与TCP层之间加上了SSL/TTL安全协议) SSL和TTL是在不同时期的两种叫法&#xff0c;含义相同。 2.默认端口号&#xff1a;443 3.TCP三…...

从零开始训练一个ChatGPT大模型(低资源,1B3)

macrogpt-prertrain 大模型全量预训练(1b3), 多卡deepspeed/单卡adafactor 源码地址&#xff1a;https://github.com/yongzhuo/MacroGPT-Pretrain.git 踩坑 1. 数据类型fp16不太行, 很容易就Nan了, 最好是fp32, tf32, 2. 单卡如果显存不够, 可以用优化器adafactor, 3. 如果…...

从文字到使用,一文读懂Kafka服务使用

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…...

什么是https加密协议?

前言&#xff1a; HTTPS&#xff08;全称&#xff1a;Hypertext Transfer Protocol Secure&#xff09; 是一个安全通信通道&#xff0c;它基于HTTP开发用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换&#xff0c;简单来说它是HTTP的安全版&…...

0012Java程序设计-ssm医院预约挂号及排队叫号系统

文章目录 **摘** **要**目 录系统实现5.2后端功能模块5.2.1管理员功能模块5.2.2医生功能模块 开发环境 摘 要 网络的广泛应用给生活带来了十分的便利。所以把医院预约挂号及排队叫号管理与现在网络相结合&#xff0c;利用java技术建设医院预约挂号及排队叫号系统&#xff0c;实…...

PaddleClas学习3——使用PPLCNet模型对车辆朝向进行识别(c++)

使用PPLCNet模型对车辆朝向进行识别 1 准备环境2 准备模型2.1 模型导出2.2 修改配置文件3 编译3.1 使用CMake生成项目文件3.2 编译3.3 执行3.4 添加后处理程序3.4.1 postprocess.h3.4.2 postprocess.cpp3.4.3 在cls.h中添加函数声明3.4.4 在cls.cpp中添加函数定义3.4.5 在main.…...

学习记录---kubernetes中备份和恢复etcd

一、简介 ETCD是kubernetes的重要组成部分&#xff0c;它主要用于存储kubernetes的所有元数据&#xff0c;我们在kubernetes中的所有资源(node、pod、deployment、service等)&#xff0c;如果该组件出现问题&#xff0c;则可能会导致kubernetes无法使用、资源丢失等情况。因此…...

使用单例模式+观察者模式实现参数配置实时更新

使用vector存储观察者列表 #include <iostream> #include <vector> #include <functional> #include <algorithm>// 配置参数结构体 struct MyConfigStruct {int parameter1;std::string parameter2; };class Config { public:using Observer std::f…...

区块链实验室(28) - 拜占庭节点劫持区块链仿真

在以前的FISCO环境中仿真拜占庭节点攻击区块链网络。该环境共有100个节点&#xff0c;采用PBFT作为共识机制&#xff0c;节点编号分别为&#xff1a;Node0&#xff0c;Node&#xff0c;… &#xff0c;Node99。这100个节点的前2010区块完全相同&#xff0c;自区块2011开始分叉。…...

聊聊AsyncHttpClient的ChannelPool

序 本文主要研究一下AsyncHttpClient的ChannelPool ChannelPool org/asynchttpclient/channel/ChannelPool.java public interface ChannelPool {/*** Add a channel to the pool** param channel an I/O channel* param partitionKey a key used to retrieve the cac…...

[MySQL] MySQL复合查询(多表查询、子查询)

前面我们学习了MySQL简单的单表查询。但是我们发现&#xff0c;在很多情况下单表查询并不能很好的满足我们的查询需求。本篇文章会重点讲解MySQL中的多表查询、子查询和一些复杂查询。希望本篇文章会对你有所帮助。 文章目录 一、基本查询回顾 二、多表查询 2、1 笛卡尔积 2、2…...

[架构之路-256]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 架构设计 - 软件系统不同层次的复用与软件系统向越来越复杂的方向聚合

目录 前言&#xff1a; 一、CPU寄存器级的复用&#xff1a;CPU寄存器 二、指令级复用&#xff1a;二进制指令 三、过程级复用&#xff1a;汇编语言 四、函数级复用&#xff1a;C语言 五、对象级复用&#xff1a;C, Java, Python 六、组件级复用 七、服务级复用 八、微…...

C++初学教程三

目录 一、运算符 一、自增自减运算符 二、位运算符 三、关系运算符...

雷达点云数据.pcd格式转.bin格式

雷达点云数据.pcd格式转.bin格式 注意&#xff0c;方法1原则上可行&#xff0c;但是本人没整好pypcd的环境 方法2是绝对可以的。 方法1 1 源码如下&#xff1a; def pcb2bin1(): # save as bin formatimport os# import pypcdfrom pypcd import pypcdimport numpy as np…...

Fiddler抓包测试

模拟弱网测试 操作&#xff1a;一、Rules - Customize Rules &#xff08;快捷键CtrlR&#xff09;弹出编辑器 二、接着CtrlF查找m_SimulateModem标志位 三、默认上传300ms&#xff0c;下载150ms 四、更改后&#xff0c;继续Rules - Performances - Simulate Modem Speeds勾上 …...

视频处理关键知识

1 引言 视频技术发展到现在已经有100多年的历史&#xff0c;虽然比照相技术历史时间短&#xff0c;但在过去很长一段时间之内都是最重要的媒体。由于互联网在新世纪的崛起&#xff0c;使得传统的媒体技术有了更好的发展平台&#xff0c;应运而生了新的多媒体技术。而多媒体技术…...

LeetCode435. Non-overlapping Intervals

文章目录 一、题目二、题解 一、题目 Given an array of intervals intervals where intervals[i] [starti, endi], return the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping. Example 1: Input: intervals [[1,2]…...

ffmpeg 实现多视频轨录制到同一个文件

引言 在视频录制中&#xff0c;有时会碰到这样一个需求&#xff0c;将不同摄像头的画面写入到一个视频文件&#xff0c;这个叫法很多&#xff0c;有的厂家叫合流模式&#xff0c;有的叫多画面多流模式。无论如何&#xff0c;它们的实质都是在一个视频文件上实现多路不同分辨率视…...

vue3中子组件调用父组件的方法

<script lang"ts" setup>前提 父组件&#xff1a; 子组件&#xff1a; const emit defineEmits([closeson]) 在子组件的方法中使用&#xff1a; emit(closeson)...

使用OkHttp上传本地图片及参数

下面以一个例子来讲解在项目中如何使用OKHttp来对本地图片做个最简单的上传功能&#xff0c;基本上无封装&#xff0c;只需要简单调用便可&#xff08;对于OKHttp的引入不再单独做介绍&#xff09;。 1&#xff1a;构建上传图片附带的参数&#xff08;params&#xff09; Map…...

无公网IP环境如何SSH远程连接Deepin操作系统

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统&#xff0c;专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…...

不会代码(零基础)学语音开发(语音控制板载双继电器)

继电器的用途可广了&#xff0c;这个语音控制用处也特别广。继电器&#xff0c;它实际上是一种“自动开关”&#xff0c;用小电流去控制大电流运作&#xff0c;在电路中起着自动调节、安全保护、转换电路等作用。 在日常生活中&#xff0c;你插入汽车钥匙&#xff0c;车辆可以…...

在imx6ull中加入ov5640模块

本来觉得是一件很简单的事情但是走了很多的弯路&#xff0c;记录一下调试过程。 先使用正点原子提供的出厂内核把摄像头影像调试出来&#xff0c;然后cat /dev/video1&#xff0c;看一下video1牵扯到哪些模块&#xff0c;可以看到需要ov5640_camera.ko和 mx6s_capture.ko这两个…...

Kafka中的auto-offset-reset配置

Kafka这个服务在启动时会依赖于Zookeeper&#xff0c;Kafka相关的部分数据也会存储在Zookeeper中。如果kafka或者Zookeeper中存在脏数据的话&#xff08;即错误数据&#xff09;&#xff0c;这个时候虽然生产者可以正常生产消息&#xff0c;但是消费者会出现无法正常消费消息的…...

TCP/IP_整理起因

先分享一个初级的问题&#xff1b;有个客户现场&#xff0c;终端设备使用客户网络更新很慢&#xff0c;使用手机热点更新速度符合预期&#xff1b;网络部署情况如下&#xff1a; 前期花费了很大的精力进行问题排查对比&#xff0c;怀疑是客户网络问题&#xff08;其他的客户现…...

CG-0A 电子水尺水导电测量原理应用于道路积水监测

CG-0A 电子水尺水导电测量原理应用于道路积水监测产品概述 本产品是一种采用微处理器芯片为控制器&#xff0c;内置通讯电路的数字式水位传感器&#xff0c;具备高的可靠性及抗干扰性能。适用于江、河、湖、水库及蓄水池、水渠等处的水位测量使用。 本产品采用了生产工艺技术…...

openEuler JDK21 部署 Zookeeper 集群

zookeeper-jdk21 操作系统&#xff1a;openEuler JDK&#xff1a;21 主机名IP地址spark01192.168.171.101spark02192.168.171.102spark03192.168.171.103 安装 1. 升级内核和软件 yum -y update2. 安装常用软件 yum -y install gcc gcc-c autoconf automake cmake make \zl…...

前端——html拖拽原理

文章目录 ⭐前言⭐draggable属性&#x1f496; api&#x1f496; 单向拖动示例&#x1f496; 双向拖动示例 ⭐总结⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于 前端——html拖拽原理。 vue3系列相关文章&#xff1a; vue3 fastapi 实现选择目录所有文…...

JVM 执行引擎篇

机器码、指令、汇编语言 机器码 各种用二进制编码方式表示的指令&#xff0c;叫做机器指令码。开始&#xff0c;人们就用它采编写程序&#xff0c;这就是机器语言。机器语言虽然能够被计算机理解和接受&#xff0c;但和人们的语言差别太大&#xff0c;不易被人们理解和记忆&a…...

js中数组对象去重的方法

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 最近工作中需要用到数组对象去重的方法&#xff0c;我是怎么想也没想出来&#xff0c;今天稍微研究了一下&#xff0c;总算找到了2种方法。分享一下&…...

【送书活动四期】被GitHub 要求强制开启 2FA 双重身份验证,我该怎么办?

记得是因为fork了OpenZeppelin/openzeppelin-contracts的项目&#xff0c;之后就被GitHub 要求强制开启 2FA 双重身份验证了&#xff0c;一拖再拖&#xff0c;再过几天帐户操作将受到限制了&#xff0c;只能去搞一下了 目录 2FA是什么为什么要开启 2FA 验证GitHub 欲在整个平台…...

GO设计模式——13、享元模式(结构型)

目录 享元模式&#xff08;Flyweight Pattern&#xff09; 享元模式的核心角色&#xff1a; 优缺点 使用场景 注意事项 代码实现 享元模式&#xff08;Flyweight Pattern&#xff09; 享元模式&#xff08;Flyweight Pattern&#xff09;它通过共享对象来减少内存使用和提…...