自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 常用的密码算法

对称加密(Symmetric Encryption)是密码学的重要概念之一。对称密码在密码学中有着举足 轻重的地位,本书中的大多数密码算法或协议都用到对称密码。现在,我们借助将要介绍的第一 个协议引入对称加密这个新概念。想象这样一个情景:Alice 需要给住在城堡外的 Bob 寄送一封 信件。如图 1.1 所示,Alice 要求她忠实的信使(Messenger)骑上他的骏马,穿越前方危险的土 地,向 Bob 传递重要消息。然而,Alice 对信使很是怀疑;

2025-07-15 18:34:52 496

原创 什么是KMS

Knowledge Management System(KMS,知识管理系统)是一种基于信息技术的系统,旨在对组织内的知识进行全面管理和处理。它是一个综合性的平台,具备一系列特定的功能和机制。首先,它包含强大的知识存储功能,能够以多种形式如文档、数据库、多媒体等,安全、有序地存储大量的知识资源,包括企业的业务流程、技术规范、经验教训、研究成果等。KMS 系统通过有效的技术手段和管理策略,致力于打造一个集中化、规范化、可扩展的知识管理环境,为组织的发展和创新提供有力的支持。

2025-07-15 18:24:54 431

原创 vue3+elementplus+vuedraggable插件

实现左右拖拽移入,和上下拖拽排序 先看目标效果(gif由迅捷gif工具制作试用,使用vscode可以打开gif,进行预览)

2025-07-08 09:48:37 318

原创 SSL单向/双向认证

在现代网络通信中,安全至关重要,而SSL(Secure Sockets Layer,安全套接字层)协议则是保证通信安全的关键技术之一。SSL认证用于加密客户端和服务器之间的数据传输,网址以https开头,防止信息被窃取或篡改。根据认证模式的不同,SSL可以分为单向认证和双向认证。SSL单向认证:只需服务端拥有证书,无需客户端拥有证书。SSL双向认证:需要客户端和服务端双方都拥有证书。SSL单向认证和双向认证都是保障网络安全的重要手段,选择合适的认证方式需要根据实际场景的需求。

2025-07-08 09:39:59 1416

原创 OCSP和CRL

一、CRL证书吊销列表(CRL)指的是KPI系统中的一个结构化数据文件,其中包含了证书颁发机构(CA)已经吊销的证书的序号和吊销日期。可供企业、机构进行证书有效性查询。值得注意的是CRL并不是实时性的,因为证书颁发机构(CA)一般会间隔一段时间公布一次,而不是实时公布。二、OCSP在线证书状态协议(OCSP)是维护服务器和网络资源安全性的两种模式之一。它解决了企业用户频繁拉取证书吊销列表(CRL)进行证书校验的缺点,可以在线查询证书的有效性。在网络安全领域中,公钥基础设施PKI。

2025-07-07 11:32:52 1093

原创 CA和证书

OpenSSL既是一个项目又是一个软件。作为软件,它是一个功能齐全的工具包,广泛应用于通用加密和安全通信。libcrypto:用于实现加密和解密的库libssl:用于实现ssl通信协议的安全库openssl:多用途命令工具。

2025-06-28 10:42:18 580

原创 证书工具之openSSL

openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,大部分command都可以直接man command查看命令的用法和功能。使用openssl req自签署证书时,需要使用"-x509"选项,由于是签署证书请求文件,所以可以指定"-days"指定所颁发的证书有效期。-key :用到的私钥文件。

2025-06-28 10:40:51 361

原创 dependency-check工具优化

要将工具的优化方向转化为专利申请,需结合技术创新点与专利撰写规范,确保满足新颖性、创造性和实用性要求。

2025-06-27 17:51:39 85

原创 SPECpower 调优

初始测试只是测试服务器负载的一部分:服务器Java性能,测试处理器、缓存、内存和共用存储器处理器(shared memory processors),并且执行Java虚拟机,JIT编译器,碎片帐集,threads,以及操作系统的一些方面。随着第一个功耗-性能测试基准的出台,功耗测试有了一个普遍的方法,可以吸引其他的基准测试开发商对功耗测试的兴趣,希望由此可以建立一套这个新领域测试基准的惯例。SPECpower_ssj2008定义了服务器功耗的测试标准,就像SPEC对性能测试标准定义相似。

2025-06-27 17:14:15 131

原创 什么是JVM

Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境。

2025-06-27 17:13:54 857

原创 新增独立模块

在tao.php文件里声明一个名为 模块名 + 'Tao' 的类,继承自该模块的model类,比如testtools模块就继承上面model层增加的testtoolsModel类。在zen.php文件里声明一个名为 模块名 + 'Zen' 的类,继承自该模块的control类,比如testtools模块就继承上面control层增加的testtools类。zen层是禅道20版本之后增加的新的逻辑分层,主要解决的是control层代码臃肿,将control层的子逻辑放在zen层。注意:zen层是可选的。

2025-06-27 17:13:41 44

原创 Java实现PDF转图片的三种方法

提示:生成图片以后需要将文件流关闭,不然删除文件会删除失败很多人不知道怎么将pdf的文件转换成图片格式的,而且网上有很例子是跑不通的,同是也是方便自己在用到该需求的时候能够快速度地写出来,所以整理了几种pdf转换成图片的方法工具类。

2025-06-27 17:06:55 1363

原创 LBA和IOPS,以及postgres如何降低IOPS

cache的命中率取决于数据的分布,cache size的大小,数据访问的规则,以及cache的算法,如果完整的讨论下来,这里将变得很复杂了。光纤通道的影响还是比较大的,如数据仓库环境中,对数据的流量要求很大,而一块2Gb的光纤卡,所能支撑的最大流量应当是2Gb/8(小B)=250MB/s(大B)的实际流量,当4块光纤卡才能达到1GB/s的实际流量,所以数据仓库环境可以考虑换4Gb的光纤卡。最后说一下硬盘的限制,这里是最重要的,当前面的瓶颈不再存在的时候,就要看硬盘的个数了。先来看两者对应的英语,

2025-06-27 08:56:19 1434

原创 指针和指针变量

是取值符,&是取地址符,*还可以声明变量是指针变量。

2025-06-26 17:18:59 169

原创 指针与函数传参

在用c语言实现链表时,会有很多朋友无法理解明明传了指针到函数中,函数中对指针改变却无法影响原函数中指针的位置,事实上,这是因为你对形参和实参的关系理解还不够透彻。通过这篇文章,我将告诉你指针传参时,函数的形参到底该选择怎样的类型接收。通过函数改变指针指向的办法并不只有这一种办法,你也可以通过返回值(return)的形式来得到你想要的结果,但是相比于用返回值的方法,这样的写法有两个明显的好处:1.使用函数简单(在调用函数时只需要放入就可改变,而不用特意去创建变量将结果拿回来)

2025-06-26 17:18:25 617

原创 防止重复提交

SpringBoot是一款快速开发框架,它提供了丰富的注解,可以让开发者快速构建应用程序。在这里,我们可以通过自定义注解来实现防止重复提交的功能。

2025-06-26 17:10:47 810

原创 SpringBoot面试题(44道含答案)

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用Spring 的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。

2025-06-26 17:09:35 594

原创 什么是数据清洗

数据清洗是数据处理过程中的关键环节,指对原始数据进行审查、识别并纠正(或删除)其中存在的错误、缺失、重复、不一致等问题,以提高数据质量,为后续数据分析、挖掘和建模等工作奠定可靠基础的过程。:订单表中存在 “下单时间” 格式混乱(如 “2025 年 6 月”“2025-06-11 14:30”)、“价格” 字段有负值、部分订单重复记录。:数据中某个或某些字段的值不存在或未记录,如用户信息中的 “年龄” 字段为空。:适用于小规模数据,可通过 “数据验证”“删除重复项” 等功能清洗。

2025-06-26 17:08:27 989

原创 Buildah

Buildah的命令类似于您在Dockerfile中可以找到的所有命令,Buildah的目标还在于提供一个较低级别的coreutils接口来构建容器映像,从而使人们无需Dockerfile即可构建容器。为了确保我们的Apache网络服务器正在提供我们之前添加的页面,我们必须做一些事情,我们可以curl,甚至可以使用浏览器查看结果。在这里,我们将构建一个仅包含少量容器元数据的映像,然后添加运行简单的Apache Web服务器所需的所有内容,这样做可以使您逐块构建容器映像。

2025-06-21 11:56:09 906

原创 存储基础知识

Inode:索引节点从工作原理区分:SSD是摒弃传统磁介质,采用电子存储介质进行数据存储和读取的一种技术,突破了传统机械硬盘的性能瓶颈,拥有极高的存储性能,被认为是存储技术发展的未来新星。固态硬盘的全集成电路化、无任何机械运动部件的革命性设计,从根本上解决了在移动办公环境下,对于数据读写稳定性的需求。全集成电路化设计可以让固态硬盘做成任何形状。与传统硬盘相比,SSD固态电子盘具有以下优点: 第一,SSD不需要机械结构,完全的半导体化,不存在数据查找时间、延迟时间和磁盘寻道时间,数据存取速度快。

2025-06-21 11:50:48 55

原创 实时内核与通用内核区别分析

抑制信号量的抢占是没有意义的,因为在持有信号量的同时阻塞是合法的,即使在没有抢占的情况下也可能导致优先级反转。这种优先级继承是传递性的:在上面的例子中,如果一个更高优先级的任务 D 试图获取高优先级任务 C 已经持有的第二个锁,那么任务 C 和 A 都会被暂时提升到任务的优先级D. 优先级提升的持续时间也受到严格限制:一旦低优先级任务 A 释放锁,它会立即失去其临时提升的优先级,将锁交给任务 C(并被任务 C 抢占)。通过比较,标准的RHEL内核关注的是面向吞吐量的操作和任务的公平调度。

2025-06-21 11:23:52 276

原创 基于web页面镜像系统

Django在发展过程中,为了达到非常高效率的网站结构搭建,提供给开发人员一个干净的项目结构,让开发人员更多经理集中在功能开发上、而不是技术实现上,这意味着作为Django开发人员,无需安装单独的库即可添加功能。4、让人纠结的 auth 模块,Django 的 auth 跟其它模块结合紧密,功能也挺强的,就是做的有点过了,用户的数据库 schema 都给你定好了,这样问题就来了,比如很多网站要求 email 地址唯一,可 schema 里这个字段的值不是唯一的,纠结是必须的了。烦,适合做轻量级应用;

2025-06-21 11:18:21 31

原创 配置Mail

你的git可能已经安装了,但是send-email命令不是git必需的组件。你可以使用“git send-email --help” 确认一下。如果显示send-email的man page,那么send-email已经安装再你的系统了。你的版本可能有一个send-email的安装包。git send-email 发送emails通过你的SMTP 服务器, 所以你需要配置服务器参数。参考你的email提供商的文档找到正确的参数。建议使用git send-email发送补丁(更多关于发送补丁的信息请参考。

2025-06-21 11:13:11 38

原创 内核优化之PSI篇

avg10,avg60,avg300 则是在 10s,60s,300s 的时间窗口计算的移动平均百分比,表示资源瓶颈状态的时间比例,可以给我们短期、中期和长期的量化了解。比如进程需要等待某些 IO 的返回,需要从伙伴系统分配内存,可能会由于 memory cgroup 的限制或者系统内存的水线配置而进行内存回收,进程运行需要调度器分配 CPU 时间,可能由于 CPU cgroup 的 quota 配置或者系统负载较大而等待调度器的调度。这可以帮助我们了解特定业务进程的资源需求,协助业务的部署密度。

2025-06-21 10:58:33 51

原创 Linux 性能分析之iostat命令详解

知道了iowait的计算方法后,下面讲解一下iowait常见的一些误解: - iowait 表示等待IO完成,在此期间 CPU 不能接受其他任务 从上面 iowait 的定义可以知道,iowait 表示 CPU 处于空闲状态并且有未完成的磁盘 IO 请求,也就是说,iowait 的首要条件就是 CPU 空闲,既然空闲就能接受任务,只是当前没有可运行的任务,才会处于空闲状态的,为什么没有可运行的任务呢?当前的日期, _x86_64_是CPU的架构, (4 CPU)显示了当前系统的CPU的数量。

2025-06-21 10:56:45 1066

原创 什么是 PSI

采样点之间相减就可以得到该周期内各种状态的时间长度值。从底层看,一个 psi group 的 PSI 值是基于任务数目统计的,当一个任务状态发生变化的时候,首先需要遍历该任务所属的 PSI group(如果不支持 cgroup,那么系统只有一个全局的 PSI group),更新 PSI group 的 task counter。some 这一行,代表至少有一个任务在某个资源上阻塞的时间占比,full 这一行,代表所有的非idle任务同时被阻塞的时间占比,这期间 cpu 被完全浪费,会带来严重的性能问题。

2025-06-21 10:36:15 154

原创 什么是签名验签

非对称加密通过上述流程,数字信封结合对称密钥加密技术,既保证了消息内容的安全传输(通过对称密钥加密),又解决了密钥分发的安全问题(通过非对称加密保护对称密钥),是一种在实际应用中广泛采用的混合加密方案。通过这种方式使用JWT来进行邮箱验证不仅简化了传统基于数据库查询的验证方式,同时也增强了安全性,因为它减少了直接暴露敏感信息的风险。不过需要注意的是,为了确保系统的安全,必须妥善保管好用于签署和验证JWT的密钥。此外,合理设置JWT的有效期也是很重要的,太短可能导致用户体验不佳,而太长则可能增加安全风险。

2025-06-20 16:43:34 774

原创 CA和证书

OpenSSL既是一个项目又是一个软件。作为软件,它是一个功能齐全的工具包,广泛应用于通用加密和安全通信。libcrypto:用于实现加密和解密的库libssl:用于实现ssl通信协议的安全库openssl:多用途命令工具。

2025-06-20 16:19:46 495

原创 Windows编译libjpeg库

仅供学习使用。32位与64位的release版本静态库。地址:LIBJPEG 安装编译,读取jpeg图像数据jpeg是一个国际图像压缩标准,图像的后缀一般为jpeg或者jpg。这种图片格式非常常见,还是有必要知道怎样将数据读取出来的。在我做的zMatrix库里,之前一直使用openCV的函数imread()读取图像,不是很方便,查过很多资料后发现,如果自己从零写一个读取jpeg。

2025-06-20 09:50:59 402

原创 数据库选型

下图为2021年12月的全球数据库流行度排行榜前15名,数据来源于现在已经存在了很多优秀的商业数据库,如甲骨文(Oracle)公司的 Oracle 数据库、IBM 公司的 DB2 数据库、微软公司的 SQL Server 数据库和 Access 数据库。同时,还有很多优秀的开源数据库,如 MySQL 数据库,PostgreSQL 数据库等。在选择数据库时,需要充分考虑项目需求、性能、可扩展性、成本以及与现有技术栈的兼容性等各方面因素。

2025-06-20 09:48:41 246

原创 Git合并和解决冲突

问题背景当使用git pull 来更新本地代码的时候,有时候会出现冲突,,提示:Please,commit your changes or stash them before you can merge,该提示上面会显示出冲突的文件。问题分析出现该问题的原因是你正在本地修改文件a.cpp,你的团队中另外一个人也修改了该文件并且已经提交到版本库中了,然后你们可能修改了代码的同一个地方或者有其他造成冲突的行为,这个时候你更新代码就会出现a.cpp的冲突。解决方法。

2025-06-20 09:35:34 1915

原创 数据库多主方案

多主复制意味着有多个节点充当主节点。数据在节点之间复制,并且可以在一组主节点上进行更新和插入。在这种情况下,数据有多个副本。该系统还负责解决并发更改之间发生的任何冲突。有多个主复制有两个主要原因。一个是高可用性,第二个是性能。在大多数情况下,某些节点专用于密集写入操作,而某些节点专用于某些节点或用于故障转移。多主复制的优缺点:优点:Ø 万一一个主机发生故障,另一个主机 仍然能 提供更新和插入服务。Ø 主节点位于几个不同的位置,因此所有主节点发生故障的机会非常小。Ø 可以在多台服务器上进行数据更新。

2025-06-19 18:01:31 224

原创 双向逻辑复制

在这篇博客中,我们将讨论 Postgres 16 中新增的一些更高级的特性。假设您拥有一些 Linux、Postgres 和 SQL 的经验,因为我们不仅要讨论这些新功能,还要讨论如何实现它们。本博客是使用在 Ubuntu 23.04 上运行的 PostgreSQL 16(开发版本)编写的。首先,我将回顾一些背景知识并简要介绍什么是双向复制以及为什么它很重要,然后结束我们如何实现双向逻辑复制。

2025-06-19 17:58:08 978

原创 双向逻辑复制

双向逻辑复制是指复制中的所有节点都同时充当发布者和订阅者。现在,每个数据库都可以处理读写请求,所有的更改都会以流式传输的方式传递给彼此。这就是双向的方面,与之前只有单向变化流动不同,现在变化在两个方向上都进行流动。在PostgreSQL中,如果你想删除一个现有的复制订阅,你可以使用DROP SUBSCRIPTION语句。在这个命令中,subscription_name是你想要删除的订阅的名称。IF EXISTS是一个可选语句,用于避免在订阅不存在时抛出错误。

2025-06-19 17:57:40 142

原创 TimescaleDB压缩功能

我们也可以避免排序。另一件要考虑的事情是,对已压缩的块的修改是低效的。如果你看一下上面的例子,device_id作为一个分段,你会发现这将有很好的压缩,因为排序只在一个段内重要,而按设备分段保证每个段表示一个序列,如果只按时间排序。我们可以根据特定的列对压缩行进行分段,这样每个压缩行对应于单个项目的数据,例如,特定的device_id。因此,我们的压缩设计使您可以两全其美:最近的数据以未压缩的行格式被吸收,用于高效的浅查询和宽查询,然后在老化后自动转换为压缩的列格式,并且最常用的查询是使用深查询和窄查询。

2025-06-19 17:55:06 91

原创 timescale+逻辑复制

随着物联网的发展,时序数据库的需求越来越多,比如水文监控、工厂的设备监控、国家安全相关的数据监控、通讯监控、金融行业指标数据、传感器数据等。在互联网行业中,也有着非常多的时序数据,例如用户访问网站的行为轨迹,应用程序产生的日志数据等等。PG 的逻辑复制不适用于超表,因为逻辑复制实际上不复制 DDL 命令,而只是对数据执行发布/订阅。超表的所有块(分区)都是 postgres 表,事实上,作为插入的一部分,主表上的插入实际上可以创建一个或多个块(表)。

2025-06-19 17:54:06 41

原创 WAL日志管理

PG的WAL(Write Ahead Log)日志,意为 预写式日志,特点是先记后做。例如:假设发生一个update事务,数据库的操作步骤:(1)将update事务转化为特定格式,形成日志条目,记录至内存中的wal buffer;(2)从磁盘的数据文件中读取需要update的数据至内存中的buffer cache,然后进行update,得到脏块;(3)commit这个事务(或满足其他触发条件),wal writer进程将wal buffer中日志条目记录至磁盘的wal文件中;

2025-06-19 17:52:17 251

原创 ipmitool

以下命令都是在非IPMI所在物理机器上运行,因此需要携带-H、-U、-P参数来指定远程地址和用户名密码;复制截图中的密码作为临时使用,在你看到这篇文章后已经被删除,因此没有打码用户名密码部分。作为远程调用过程中,你不想直接在命令行上体现密码,把-P删掉即可,后面不接密码内容,将会在交互中shell中输入密码:同时,也并不是所有主板都支持BMC管理,是否有BMC芯片,请自行查询主板厂商和型号支持情况,一般在服务器主板常用。

2025-06-18 14:39:42 145

原创 网络抓包神器 tcpdump

本文主要介绍了 tcpdump 的基本语法和使用方法,并通过一些示例来展示它强大的过滤功能。将 tcpdump 与 wireshark 进行组合可以发挥更强大的功效,本文也展示了如何优雅顺滑地结合 tcpdump 和 wireshark。如果你想了解更多的细节,可以查看 tcpdump 的 man 手册。

2025-06-18 14:33:22 474

原创 BSP的使用

板级支持包(BSP)是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。在嵌入式系统软件的组成中,就有BSP。BSP(Board Support Package)指板级支持包,可支持操作系统更好地运行于硬件主板。对于一般的嵌入式系统,硬件部分需要嵌入式硬件工程师设计硬件电路,而新出厂的电路板需要BSP 来保证其能稳定工作,在此基础之上才能进行下一步的软件开发。

2025-06-18 11:39:48 55

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除