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

网络安全溯源 思路 网络安全原理

网络安全背景

        网络就是实现不同主机之间的通讯。网络出现之初利用TCP/IP协议簇的相关协议概念,已经满足了互连两台主机之间可以进行通讯的目的,虽然看似简简单单几句话,就描述了网络概念与网络出现的目的,但是为了真正实现两台主机之间的稳定可靠通讯,其实是一件非常困难的事情了,如果还要再通讯的基础上保证数据传输的安全性,可想而知,绝对是难上加难,因此,网络发明之初,并没有太关注TCP/IP互联协议中的安全问题。

        对于默认的两台主机而言,早期传输数据信息并没有通过加密方式传输数据,设备两端传输的数据本身实际是明文的,只要能截取到传输的数据包,就可以直接看到传输的数据信息,所以根本没有安全性可言。

早期利用明文方式传输的协议有:FTP、HTTP、SMTP、Telnet等。

数据加密算法

网络安全涉及很多方面,而网络数据的安全传输通常会面临以下几方面的威胁:

  1.数据窃听与机密性: 即怎样保证数据不会因为被截获或窃听而暴露。

  2.数据篡改与完整性: 即怎样保证数据不会被恶意篡改。

  3.身份冒充与身份验证: 即怎样保证数据交互双方的身份没有被冒充。

针对以上几个问题,可以用以下几种数据加密方式来解决(每种数据加密方式又有多种不同的算法实现):

数据加密方式

描述

主要解决的问题

常用算法

对称加密

指数据加密和解密使用相同的密钥

数据的机密性

DES,AES

非对称加密

也叫公钥加密,指数据加密和解密使用不同的密钥-密钥对

身份验证

DSA,RSA

单向加密

指只能加密数据,而不能解密数据

数据的完整性

MD5,SHA系列算法

普通算法

网站此时利用普通常见算法,针对密码加密,基本保证数据再传输时候,不是明文
但是黑客可能会有一个庞大的算法本,里面记录了常见的密码和加密后的密文,一一对应,然后可以利用程序大量计算,反解出明文密码撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户。 很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网址,这就可以理解为撞库攻击。

  

网络安全溯源 思路 网络安全原理_linux

对称加密 

网络安全溯源 思路 网络安全原理_网络安全溯源 思路_02

网络安全溯源 思路 网络安全原理_linux_03

网络安全溯源 思路 网络安全原理_nginx_04

对称加密算法,如其名,就是使用同一个秘钥进行加密和解密。优点是速度较快,适合对数据量比较大的数据进行加密。缺点是密钥的保存方式需要保证,一旦加密或者解密的哪一方泄漏了密钥,都会导致信息的泄漏。常用的对称加密算法有:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6、AES。

    非对称加密

    网络安全溯源 思路 网络安全原理_网络安全溯源 思路_05

    简单理解,比喻关系
    公钥---锁
    私钥---开锁钥匙私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。
    比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

      常用的非对称假面算法有:RSA,ECC,Diffie-Hellman,El Gamal,DSA(数字签名用)

      虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。为了解释这个过程,请看下面的例子:
      1.使用对称加密,速度快
      2.使用非对称加密的方式,针对第一步的秘钥加密传输(1) 超哥需要在银行的网站做一笔交易,他的浏览器首先生成了一个随机数作为对称密钥。(2) 超哥的浏览器向银行的网站请求公钥(非对称加密的公钥~~)。(3) 银行将公钥发送给超哥。(4) 超哥的浏览器使用银行的公钥将自己的对称密钥加密(这里是重点,已经是【对称加密+非对称加密】)。(5) 超哥的浏览器将加密后的对称密钥发送给银行。(6) 银行使用私钥解密得到超哥浏览器的对称密钥。(7) 超哥与银行可以使用对称密钥来对沟通的内容进行加密与解密了。

         总结

        1.对称加密方式,加密解密使用同样的密钥,速度较快,但是密钥需要在网络中传输,因此可能被截获,不安全2.非对称加密,使用一对密钥,公钥,私钥,因此安全性很高,但是加密和解密速度很慢3.常用的方式是,结合两种加密方式,效率与安全性都有又了保障。

          如何安全获取公钥

          网络安全溯源 思路 网络安全原理_网络安全溯源 思路_06

           1) A和B端首先生成自己的公钥和私钥的密钥对,为了使对方能相信自己的公钥信息,将自己的公钥信息告知给第三方发证机构,利用第三方机构对自己的公钥进行公证。第三方机构会制作一个数字证书(机构 编号 以及发证机构的戳),并且第三方机构也要给自己设置一个合法的公钥和私钥,并且公钥设置为第三方机构的公钥证书。

          2) 发证机关计算出数字证书数据的特征码,并用自己的私钥进行加密,并将加密的信息附加到特征码后成为数字签名。

          3) A和B两端获得公正过的证书信息,并通过证书信息传递,得到对方的公钥。

          4) A和B两端与第三方机构建立连接,获得第三方证书,通过第三方证书获得第三方公钥,利用第三方公钥只要能解密数字签名即可。

          Openssl软件

          在传输层和应用层之间。ssl层

          网络安全溯源 思路 网络安全原理_网络安全溯源 思路_07

          网络安全溯源 思路 网络安全原理_linux_08

           openssl实践

          openssl由三部分组成:

            1.libcrpto:通用加密库

            2. libssl:TSL/SSL组成库,基于会话实现了身份认证,数据加密和会话完整性。

            3. openssl:提供命令行工具,例如模拟创建证书。

          openssl命令行

          # 检查版本
          [root@chaogelinux ~]# openssl version
          OpenSSL 1.0.2k-fips  26 Jan 2017# 配置文件
          [root@chaogelinux ~]# cat /etc/pki/tls/openssl.cnf#获取openssl命令操作
          [root@chaogelinux ~]# openssl -?
          openssl:Error: '-?' is an invalid command.# 标准命令
          Standard commands
          asn1parse         ca                ciphers           cms
          crl               crl2pkcs7         dgst              dh
          dhparam           dsa               dsaparam          ec
          ...# 信息摘要命令,单向加密命令
          Message Digest commands (see the `dgst' command for more details)
          md2               md4               md5               rmd160
          sha               sha1# 加密命令
          Cipher commands (see the `enc' command for more details)
          aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb
          aes-256-cbc       aes-256-ecb       base64            bf
          bf-cbc            bf-cfb            bf-ecb            bf-ofb# 测试机器对openssl支持的加密算法进行速度测试,检测服务器性能
          openssl speed

             

            【openssl加密命令】

            语法
            openssl enc -加密算法  -in filename -out filename  # 对文件加密[root@chaogelinux ~]# cat my.pwd
            yu:123
            [root@chaogelinux ~]#
            [root@chaogelinux ~]#
            # 输入密码后加密成功,超哥这里是888888
            [root@chaogelinux ~]# openssl enc -des3 -salt -a -in my.pwd -out my.pwd.des3
            enter des-ede3-cbc encryption password:
            Verifying - enter des-ede3-cbc encryption password:#解密文件
            [root@chaogelinux ~]# cat my.pwd.des3
            U2FsdGVkX19ZDOFtbdZz3QNu+bxm3DKd
            [root@chaogelinux ~]## 输入密码后,解密文件
            [root@chaogelinux ~]# openssl enc -des3 -d -salt -a -in my.pwd.des3 -out my.pwd.src
            enter des-ede3-cbc decryption password:
            [root@chaogelinux ~]#
            [root@chaogelinux ~]# cat my.pwd.src
            yu:123参数解释:
            enc openssl把众多的对称加密算法,统一集成在了enc指令,用法是 enc -算法名
            -des3 指定算法
            -d    指定解密
            -e  指定加密
            -salt 密码加盐,防止密码被破解
            -a 基于base64位编码,可选参数

              【openssl创建私有证书】

              1.创建私钥和公钥,模拟证书颁发机构生成证书,生成一对密钥

              # 指定私钥长度1024,并且将生成的私钥信息保存在文件里,且利用小括号功能,修改子shell的umask
              [root@chaogelinux ssl_cert]# (umask 077;openssl genrsa -out server1024.key 1024)
              Generating RSA private key, 1024 bit long modulus
              ..........++++++
              ...................++++++
              e is 65537 (0x10001)# 读取私钥文件,选择非对称加密算法rsa,生成公钥,写入到文件中
              [root@chaogelinux ssl_cert]# openssl rsa -in server1024.key -pubout -out server1024.key.pub# 检查文件
              [root@chaogelinux ssl_cert]# ls
              server1024.key  server1024.key.pub# 生成自签的证书
              [root@chaogelinux ssl_cert]# openssl req -new -x509 -key server1024.key -out server.crt -days 365
              You are about to be asked to enter information that will be incorporated
              into your certificate request.
              What you are about to enter is what is called a Distinguished Name or a DN.
              There are quite a few fields but you can leave some blank
              For some fields there will be a default value,
              If you enter '.', the field will be left blank.
              -----
              Country Name (2 letter code) [XX]:CN
              State or Province Name (full name) []:BJ
              Locality Name (eg, city) [Default City]:BJ
              Organization Name (eg, company) [Default Company Ltd]:chaoge
              Organizational Unit Name (eg, section) []:it
              Common Name (eg, your name or your server's hostname) []:pythonav.cn

                网络安全溯源 思路 网络安全原理_网络安全溯源 思路_09

                Nginx部署https

                        利用证书实现HTTPS访问Nginx服务,需要nginx使用ssl模块配置HTTPS支持,默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,这些文件并不在同一个软件包中,通常这个文件名类似libssl-dev。 

                        nginx的https协议需要ssl模块的支持,我们在编译nginx时使用--with-http_ssl_module参数加入SSL模块。还需要服务器私钥,服务器证书,如果是公司对外环境,这个证书需要购买第三方的权威证书,否则用户体验得不到保障

                部署https实践

                1.创建Nginx需要的证书文件
                确保机器安装了openssl和openssl-devel,创建证书
                yum install openssl openssl-devel -y 2.确保nginx支持了ssl模块,查看nginx编译信息即可
                nginx -V3.模拟证书颁发机构CA创建证书
                进入nginx安装目录,便于管理证书
                [root@chaogelinux ~]# cd /opt/ngx112/
                [root@chaogelinux ngx112]# mkdir key
                [root@chaogelinux ngx112]# cd key/# 生成私钥文件,利用字shell降低文件权限
                [root@chaogelinux key]# (umask 077;openssl genrsa -out server1024.key 1024)
                Generating RSA private key, 1024 bit long modulus
                .++++++
                ...++++++
                e is 65537 (0x10001)# 自己签发证书,crt证书扩展名
                [root@chaogelinux key]# openssl req -new -x509 -key server1024.key -out server.crt -days 365
                You are about to be asked to enter information that will be incorporated
                into your certificate request.
                What you are about to enter is what is called a Distinguished Name or a DN.
                There are quite a few fields but you can leave some blank
                For some fields there will be a default value,
                If you enter '.', the field will be left blank.
                -----
                Country Name (2 letter code) [XX]:CN
                State or Province Name (full name) []:BJ
                Locality Name (eg, city) [Default City]:BJ
                Organization Name (eg, company) [Default Company Ltd]:chaoge
                Organizational Unit Name (eg, section) []:it
                Common Name (eg, your name or your server's hostname) []:pythonav.cn
                Email Address []:yc_uuu@163.com# 向机构申请证书,我们这里生成的是证书请求文件,而不是直接生成证书了,运维发送该文件给机构,请求合法证书
                [root@chaogelinux key]# openssl req -new -key server1024.key -out server.csr
                You are about to be asked to enter information that will be incorporated
                into your certificate request.
                What you are about to enter is what is called a Distinguished Name or a DN.
                There are quite a few fields but you can leave some blank
                For some fields there will be a default value,
                If you enter '.', the field will be left blank.
                -----
                Country Name (2 letter code) [XX]:CN
                State or Province Name (full name) []:BJ
                Locality Name (eg, city) [Default City]:BJ
                Organization Name (eg, company) [Default Company Ltd]:chaoge
                Organizational Unit Name (eg, section) []:it
                Common Name (eg, your name or your server's hostname) []:pythonav.cn
                Email Address []:yc_uuu@163.com# 针对这个请求文件,做一个加密处理,告知办法机构,可以用这个密码解密,了解公司信息,也可以直接回车不写密码
                Please enter the following 'extra' attributes
                to be sent with your certificate request
                A challenge password []:# 一般这个证书颁发,需要等到一周内的时间,因此我们直接使用本地的自己签发的证书即可,进行练习4.配置Nginx,加载私钥,证书
                修改nginx.conf,添加
                include extra/443.conf;# 创建https配置文件
                vim 443.conf 写入[root@web01 extra]# cat 443.confserver {server_name _;listen 443 ssl;ssl_certificate /opt/nginx/key/server.crt;ssl_certificate_key /opt/nginx/key/server1024.key;charset utf-8;location / {root html;index index.html index.htm;
                }
                }
                ~# 修改80端口虚拟主机,进行请求转发给443
                }
                server {listen 80;server_name www.chaoge.com;charset utf-8;rewrite ^(.*)$ https://$host$1 permanent;location / {root html;index index.html index.htm;}}
                include extra/443.conf;
                }# 检测语法,重启nginx
                [root@web01 extra]# nginx -t
                nginx: the configuration file /opt/nginx-1.16.0//conf/nginx.conf syntax is ok
                nginx: configuration file /opt/nginx-1.16.0//conf/nginx.conf test is successful

                  网络安全溯源 思路 网络安全原理_nginx_10

                  相关文章:

                  网络安全溯源 思路 网络安全原理

                  网络安全背景 网络就是实现不同主机之间的通讯。网络出现之初利用TCP/IP协议簇的相关协议概念,已经满足了互连两台主机之间可以进行通讯的目的,虽然看似简简单单几句话,就描述了网络概念与网络出现的目的,但是为了真正实现两台主机…...

                  Mac(m1)本地部署deepseek-R1模型

                  1. 下载安装ollama 直接下载软件,下载完成之后,安装即可,安装完成之后,命令行中可出现ollama命令 2. 在ollama官网查看需要下载的模型下载命令 1. 在官网查看deepseek对应的模型 2. 选择使用电脑配置的模型 3. copy 对应模型的安…...

                  从零复现DeepSeek R1:从V3中对MoE、MLA、MTP的实现,到Open R1对R1中SFT、GRPO的实现

                  前言 虽然我司从23年起,便逐步从教育为主转型到了科技为主,但不代表教育业务便没有了 随着DeepSeek特别是R1、其次V3模型的大火,我司七月在线的大模型线上营群里一学员朋友DIFY问道:校长好,deepseek 的课程目前有多少…...

                  [EAI-033] SFT 记忆,RL 泛化,LLM和VLM的消融研究

                  Paper Card 论文标题:SFT Memorizes, RL Generalizes: A Comparative Study of Foundation Model Post-training 论文作者:Tianzhe Chu, Yuexiang Zhai, Jihan Yang, Shengbang Tong, Saining Xie, Dale Schuurmans, Quoc V. Le, Sergey Levine, Yi Ma 论…...

                  示例代码:C# MQTTS双向认证(客户端)(服务器EMQX)

                  初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...

                  自制游戏——斗罗大陆

                  很简陋&#xff0c;没有图&#xff0c;请见谅 // mine[0] 级数 // mine[1] 战力 //mine[2] 1 白虎 //mine[2] 2 昊天锤 //mine[2] 3 蓝银草 #include <bits/stdc.h> using namespace std; int mine[100],live3, dou 1, luo 1, da 1, bag[1000], huan 0, lia…...

                  数据治理双证通关经验分享 | CDGA/CDGP备考全指南

                  历经1个月多的系统准备&#xff0c;本人于2024年顺利通过DAMA China的CDGA&#xff08;数据治理工程师&#xff09;和CDGP&#xff08;数据治理专家&#xff09;双认证。现将备考经验与资源体系化整理&#xff0c;助力从业者高效通关。 &#x1f31f; 认证价值与政策背景 根据…...

                  Vue全流程--Vue3.0与Vue2.0响应式原理对比

                  Vue2中数据的响应式 需要使用Vue.set这么一个api&#xff0c;修改数据 需要使用Vue.delete这么一个api&#xff0c;删除数据 数据代理这个当面的理解可以看看我前面文章Vue全流程--数据代理的理解以及在Vue中的应用-CSDN博客 Vue3中数据的响应式 Vue3使用proxy这个api实现…...

                  Spring中都应用了哪些设计模式?

                  好的&#xff01;以下是您提到的八种设计模式在 Spring 中的简单示例&#xff1a; 1. 简单工厂模式 简单工厂模式通过传入参数来决定实例化哪个类。Spring 中的 BeanFactory 就是简单工厂模式的应用。 示例代码&#xff1a; // 1. 创建接口和具体实现类 public interface A…...

                  fastjson2学习大纲

                  一、基础篇 - JSON与fastjson2核心概念 JSON基础 JSON语法规范&#xff08;RFC 8259&#xff09;JSON数据类型与Java类型对应关系序列化/反序列化核心概念 fastjson2入门 与fastjson1的主要区别核心优势&#xff1a; 性能提升&#xff08;JSONB二进制协议&#xff09;更完善的…...

                  k8s部署elasticsearch

                  前置环境:已部署k8s集群,ip地址为 192.168.10.1~192.168.10.5,总共5台机器。 1. 创建provisioner制备器(如果已存在,则不需要) 制备器的具体部署方式,参考我之前的文章:k8s部署rabbitmq-CSDN博客 2. 编写wms-elk-data-sc.yaml配置文件 apiVersion: storage.k8s.io/…...

                  BS架构(笔记整理)

                  楔子.基本概念 1.在网络架构中&#xff1a; 服务器通常是集中式计算资源&#xff0c;负责处理和存储数据&#xff1b;客户机是请求这些服务的终端设备&#xff0c;可能是个人电脑或移动设备&#xff1b;浏览器则是客户机上用来与服务器交互的工具&#xff0c;负责展示网页内容…...

                  从基础到人脸识别与目标检测

                  前言 从本文开始&#xff0c;我们将开始学习ROS机器视觉处理&#xff0c;刚开始先学习一部分外围的知识&#xff0c;为后续的人脸识别、目标跟踪和YOLOV5目标检测做准备工作。我采用的笔记本是联想拯救者游戏本&#xff0c;系统采用Ubuntu20.04&#xff0c;ROS采用noetic。 颜…...

                  ArcGIS Pro SDK (二十七)自定义许可

                  ArcGIS Pro SDK (二十七)自定义许可 环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0 文章目录 ArcGIS Pro SDK (二十七)自定义许可1 在Config.xaml中添加扩展配置2 在Module1.cs中实现接口IExtensionConfig1 在Config.xaml中添加扩展配置 <modules><inse…...

                  一、kubernetes k8s

                  k8s概述: k8s的全称:kubernetes k8s k8s的版本:1.30 1.20------------用的最多的版本&#xff0c;1.18-1.21 1.24------------>k8s的镜像不再使用docker&#xff0c;containerd k8s的作用&#xff1a; 用于自动部署&#xff0c;自动扩展和管理“容器化应…...

                  C#、.Net 中级高级架构管理面试题杂烩

                  1、简述值类型和引用类型的区别 存储位置&#xff1a;值类型变量直接存储数据的值&#xff0c;通常存储在栈上&#xff1b;引用类型变量存储的是对象在堆上的引用地址。 内存管理&#xff1a;值类型的内存由系统自动管理&#xff0c;当超出作用域时自动释放&#xff1b;引用类…...

                  ArrayList和LinkedList有什么区别?在什么情况下使用ArrayList更高效?

                  ArrayList和LinkedList在Java中是两种常用的数据结构&#xff0c;分别基于数组和链表实现。它们在性能、内存使用和适用场景上各有特点。 ArrayList与LinkedList的主要区别 数据结构&#xff1a; ArrayList&#xff1a;基于动态数组实现&#xff0c;元素存储在连续的内存空间…...

                  KITE提示词框架:引导大语言模型的高效新工具

                  大语言模型的应用日益广泛。然而&#xff0c;如何确保这些模型生成的内容在AI原生应用中符合预期&#xff0c;仍是一个需要不断探索的问题。以下内容来自于《AI 原生应用开发&#xff1a;提示工程原理与实战》一书&#xff08;京东图书&#xff1a;https://item.jd.com/1013604…...

                  Spring 整合 MyBatis:核心知识点详解

                  一、Spring 整合 MyBatis 的优势 依赖注入&#xff1a;Spring 的 IOC 容器可以管理 MyBatis 的组件&#xff08;如 SqlSessionFactory、Mapper 接口等&#xff09;&#xff0c;减少手动创建对象的繁琐。 事务管理&#xff1a;Spring 提供了声明式事务管理&#xff0c;可以轻松…...

                  centos docker安装

                  一、前置条件 安装gcc和c: yum -y install gcc yum -y install gcc-c 二、卸载旧版本 如果之前安装过Docker&#xff0c;需要先卸载旧版本&#xff1a; sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logr…...

                  推荐一款 免费的SSL,自动续期

                  支持自动续期 、泛域名 、可视化所有证书时效性 、可配置CDN 的一款工具。免费5个泛域名和1个自动更新。 链接 支持&#xff1a;nginx、通配符证书、七牛云、腾讯云、阿里云、CDN、OSS、LB&#xff08;负载均衡&#xff09; 执行自动部署脚本 提示系统过缺少crontab 安装cro…...

                  python-leetcode 24.回文链表

                  题目&#xff1a; 给定单链表的头节点head,判断该链表是否为回文链表&#xff0c;如果是&#xff0c;返回True,否则&#xff0c;返回False 输入&#xff1a;head[1,2,2,1] 输出&#xff1a;true 方法一&#xff1a;将值复制到数组中后用双指针法 有两种常用的列表实现&#…...

                  利用kali linux 进行自动化渗透测试

                  本方案旨在自动化创建渗透测试全流程 一、架构 1.智能信息收集体系 class IntelligentOSINT:def __init__(self, target):self.target targetself.intelligence_sources [OSINT_Platforms,DeepWeb_Crawlers, SocialMedia_Trackers,ML_Correlation_Engine]def advanced_col…...

                  蓝桥杯试题:冒泡排序 选择排序

                  一、问题描述 在一个神秘的岛屿上&#xff0c;有一支探险队发现了一批宝藏&#xff0c;这批宝藏是以整数数组的形式存在的。每个宝藏上都标有一个数字&#xff0c;代表了其珍贵程度。然而&#xff0c;由于某种神奇的力量&#xff0c;这批宝藏的顺序被打乱了&#xff0c;探险队…...

                  curl与telnet的区别

                  协议支持&#xff1a;curl支持多种协议&#xff0c;如HTTP、HTTPS、FTP等&#xff0c;而telnet主要用于基于TCP协议的连接。 功能&#xff1a;curl是一个功能强大的工具&#xff0c;可以用来发送各种HTTP请求、下载文件等&#xff0c;而telnet主要用于在远程服务器上进行简单的…...

                  防火墙综合练习2

                  准备阶段 实验拓扑图如下&#xff1a; 试验要求如下&#xff1a; 需求一&#xff1a;完成相关配置 需求二&#xff1a;配置DHCP协议 需求三&#xff1a;防火墙安全区域配置 需求四&#xff1a;防火墙地址组信息 需求五&#xff1a;管理员 需求六&#xff1a;用户认证…...

                  leetcode_26删除有序数组中的重复项

                  1. 题意 给定一个重复数组&#xff0c;删除其中的重复项目。 2. 题解 双指针 一个指针指向有序不重复数组的最后一个数&#xff0c;另外一个数遍历整个数组&#xff0c;若两个指针对应用的数不相同&#xff0c;有序数组的指针右移&#xff0c;将数填入。 代码一 class Sol…...

                  SQLServer的创建,表创建,主键,约束,模糊查询

                  设置 注意: 设置完成之后 重新启动 创建数据库 注意: 这个目标路径必须要有该文件名的文件夹 -- 指向 master 数据库&#xff0c;告诉它我们要创建一个新的数据库操作了 use master go-- 创建数据库 create database StudentManageDB on primary (-- 以下四个组成部分缺一不可…...

                  钉钉位置偏移解决,钉钉虚拟定位打卡

                  虚拟定位打卡工具 一&#xff0c;介绍免费获取工具 一&#xff0c;介绍 提到上班打卡&#xff0c;职场人的内心戏估计能拍成一部连续剧。打卡&#xff0c;这俩字仿佛自带“紧箍咒”&#xff0c;让无数打工人又爱又恨。想象一下&#xff0c;你气喘吁吁地冲进办公室&#xff0c;…...

                  自有服务与软件包

                  —— 小 峰 编 程 目录 ​编辑 一、自有服务概述 二、systemctl管理服务命令 1、显示服务 2、查看启动和停止服务 3、服务持久化 三、常用自有服务&#xff08;ntp,firewalld,crond) 1、ntp时间同步服务 1&#xff09;NTP同步服务器原理 2&#xff09;到哪里去找NPT服务…...

                  PHP之hyperf学习笔记

                  Hyperf Model,Dao&#xff0c;Service&#xff0c;Contronller 路由 使用文件来配置路由&#xff0c;就是和laravel一样的 Router::addGroup(["middleware" > ["web", "auth"],"namespace" > "Hyperf\HttpServer\Contr…...

                  C++STL(六)——list模拟

                  目录 本次所需实现的三个类一、结点类的模拟实现构造函数 二、迭代器类的模拟实现为什么有迭代器类迭代器类的模板参数说明构造函数运算符的重载- -运算符的重载和!运算符的重载*运算符的重载->运算符的重载引入模板第二个和第三个参数 三、list的模拟实现3.1 默认成员函数构…...

                  Spring MVC 拦截器(Interceptor)与过滤器(Filter)的区别?

                  1、两者概述 拦截器&#xff08;Interceptor&#xff09;&#xff1a; 只会拦截那些被 Controller 或 RestController 标注的类中的方法处理的请求&#xff0c;也就是那些由 Spring MVC 调度的请求。过滤器&#xff08;Filter&#xff09;&#xff1a; 会拦截所有类型的 HTTP …...

                  MySQL查询主从同步状态

                  在MySQL中&#xff0c;监控和检查主从复制&#xff08;Master-Slave replication&#xff09;的状态是非常重要的&#xff0c;这有助于确保数据的一致性和完整性。以下是一些常用的方法&#xff0c;可以帮助你查询MySQL的主从数据同步状态&#xff1a; 1. 查看主服务器状态 首…...

                  docker 安装 --在线方式

                  第一步&#xff1a; #!/bin/bash sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo sudo sed -i -e /mirrors.cloud.aliyuncs.com/d -e /mirrors.aliyuncs.com/d /etc/yum.repos.d/CentOS-Base.repo sudo curl -o /etc/yum.repo…...

                  Linux系统-centos防火墙firewalld详解

                  Linux系统-centos7.6 防火墙firewalld详解 1 firewalld了解 CentOS 7.6默认的防火墙管理工具是firewalld&#xff0c;它取代了之前的iptables防火墙。firewalld属于典型的包过滤防火墙或称之为网络层防火墙&#xff0c;与iptables一样&#xff0c;都是用来管理防火墙的工具&a…...

                  物联网软件开发与应用方向应该怎样学习,学习哪些内容,就业方向是怎样?(文末领取整套学习视频,课件)物联网硬件开发与嵌入式系统

                  随着物联网技术的飞速发展&#xff0c;物联网软件开发与应用方向成为了众多开发者关注的焦点。那么&#xff0c;如何在这个领域中脱颖而出呢&#xff1f;本文将为你提供一份详细的学习指南&#xff0c;帮助你从零开始&#xff0c;逐步掌握物联网软件开发与应用的核心技能。 一…...

                  【大模型】DeepSeek与chatGPT的区别以及自身的优势

                  目录 一、前言二、核心技术对比2.1 模型架构设计2.1.1 ChatGPT的Transformer架构2.1.2 DeepSeek的混合架构 2.2 训练数据体系2.2.1 ChatGPT的数据特征2.2.2 DeepSeek的数据策略 三、应用场景对比3.1 通用场景表现3.1.1 ChatGPT的强项领域3.2.2 DeepSeek的专项突破 3.3 响应效率…...

                  常用的python库-安装与使用

                  常用的python库函数 yield关键字openslide库openslide库的安装-linuxopenslide的使用openslide对象的常用属性 cv2库numpy库ASAP库-multiresolutionimageinterface库ASAP库的安装ASAP库的使用 concurrent.futures.ThreadPoolExecutorxml.etree.ElementTree库skimage库PIL.Image…...

                  qt widget和qml界面集成到一起

                  将 Qt Widgets 和 QML 界面集成在一起可以利用 QQuickWidget 或 QQuickView。以下是基本步骤: 使用 QQuickWidget 创建 Qt Widgets 项目: 创建一个基于 Widgets 的应用程序。添加 QQuickWidget: 在你的窗口或布局中添加 QQuickWidget。 例如,可以在 QMainWindow 中使用: …...

                  mybatis 是否支持延迟加载?延迟加载的原理是什么?

                  1. MyBatis 是否支持延迟加载&#xff1f; 是的&#xff0c;MyBatis 支持延迟加载。延迟加载的主要功能是推迟数据加载的时机&#xff0c;直到真正需要时再去加载。这种方式能提高性能&#xff0c;尤其是在处理关系型数据时&#xff0c;可以避免不必要的数据库查询。 具体来说…...

                  MariaDB MaxScale实现mysql8主从同步读写分离

                  一、MaxScale基本介绍 MaxScale是maridb开发的一个mysql数据中间件&#xff0c;其配置简单&#xff0c;能够实现读写分离&#xff0c;并且可以根据主从状态实现写库的自动切换&#xff0c;对多个从服务器能实现负载均衡。 二、MaxScale实验环境 中间件192.168.121.51MaxScale…...

                  【图片转换PDF】多个文件夹里图片逐个批量转换成多个pdf软件,子文件夹单独合并转换,子文件夹单独批量转换,基于Py的解决方案

                  建筑设计公司在项目执行过程中&#xff0c;会产生大量的设计图纸、效果图、实景照片等图片资料。这些资料按照项目名称、阶段、专业等维度存放在多个文件夹和子文件夹中。 操作需求&#xff1a;为了方便内部管理和向客户交付完整的设计方案&#xff0c;公司需要将每个项目文件…...

                  基于logback+fastjson实现日志脱敏

                  一、需求背景 日常工作中&#xff0c;必不可免的会将一些敏感信息&#xff0c;如用户名、密码、手机号、身份证号、银行账号等等打印出来&#xff0c;但往往为了安全&#xff0c;这些信息都需要进行脱敏。脱敏实际就是用一些特殊字符来替换部分值。 JSON 和 JSONObject Fastj…...

                  13.10 统一配置管理中心:TranslationChain 架构的简洁配置管理方案

                  统一配置管理中心:TranslationChain 架构的简洁配置管理方案 1. 集中式配置文件设计 config/settings.yaml: # 多环境配置开关 env: production # development|test|production# 模型管理中心 models:openai:class: langchain_openai.ChatOpenAIparams...

                  deepseek大模型集成到idea

                  1 下载插件 安装CodeGPT打开 IntelliJ IDEA&#xff0c;鼠标点击左上角导航栏&#xff0c;File --> Setting 2 申请API key 3 配置deepseek 在 Settings 界面中的搜索框中&#xff0c;搜索 CodeGPT&#xff0c;路径 Tools --> CodeGPT --> Providers --> 如下一…...

                  Cocos2d-x 游戏开发-打包apk被默认自带了很多不必要的权限导致apk被报毒,如何在Cocos 2d-x中强制去掉不必要的权限-优雅草卓伊凡

                  Cocos2d-x 游戏开发-打包apk被默认自带了很多不必要的权限导致apk被报毒&#xff0c;如何在Cocos 2d-x中强制去掉不必要的权限-优雅草卓伊凡 实战操作 去除权限 要在 Cocos2d-x 开发的游戏中去掉 APK 自带权限&#xff0c;可以按照以下步骤操作&#xff1a; 编辑 AndroidMa…...

                  gitlab多项目流水线

                  背景是我有多个项目&#xff0c;希望其中一个项目被触发的时候&#xff0c;联动另外一个项目自动打包。然后我就看文档尝试操作了一下&#xff0c;所以有本文。 官方文档参考&#xff1a;https://gitlab.cn/docs/14.5/jh/ci/pipelines/multi_project_pipelines.html 不知道是不…...

                  GWO优化决策树回归预测matlab

                  灰狼优化算法&#xff08;Grey Wolf Optimizer&#xff0c;简称 GWO&#xff09;是一种群智能优化算法&#xff0c;由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出。该算法的设计灵感源自灰狼群体的捕食行为&#xff0c;核心思想是模仿灰狼社会的结构与行为模式。 在本…...

                  2025影视泛目录站群程序设计_源码二次开发新版本无缓存刷新不变实现原理

                  1. 引言 本设站群程序计书旨在详细阐述苹果CMS泛目录的创新设计与实现&#xff0c;介绍无缓存刷新技术、数据统一化、局部URL控制及性能优化等核心功能&#xff0c;以提升网站访问速度和用户体验。 2. 技术概述 2.1 无缓存刷新技术 功能特点&#xff1a; 内容不变性&#x…...