avatar
Articles
65
Tags
48
Categories
17

梦之痕

梦之痕

Java--进阶篇
Created2023-12-29|Java & Lua
1 注解(Annotation)1.1 注解概述注解(Annotation)是从JDK5.0开始引入,以“@注解名”在代码中存在。例如: 123@Override@Deprecated@SuppressWarnings(value=”unchecked”) Annotation 可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。还可以添加一些参数值,这些信息被保存在 Annotation 的 “name=value” 对中。 注解可以在类编译、运行时进行加载,体现不同的功能。 未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,Struts2有一部分也是基于注解的了。注解是一种趋势,一定程度上可以说:框架 = 注解 + 反射 + 设计模式。 1.2 常见的Annotation的作用1.2.1 生成文档相关的注解1234567@author 标明开发该类模块的作者,多个作者之间使用,分割@version 标明该类模块的版本@see 参考转向,也就是相关主题@ ...
Java--基础篇
Created2023-12-22|Java & Lua
0 参考资料 JAVA各版本安装包下载路径:https://www.injdk.cn/?spm=a2c6h.12873639.article-detail.22.b53720bdMO7XUf 依赖包网站:https://mvnrepository.com/ 1 编程基础1.1 Main方法 class 在Java语言中的一等公民,Java程序就是一个一个的类组成的类由修饰符,类名和类的内容组成类名必须与保存类源文件的文件名相同 main方法 Main方法是Java程序执行的入口方法由方法修饰符,方法名,参数列表和方法体等组成 1.2 基本数据类型 整数类型 byte 占用1个 byte,值域是 -128 ~ 127 short 占用2个 byte,值域是-32768~ 32767 int占用4个 byte,值域是 -2147483648 ~ 2147483647。Java 中整数缺省是 int 类型 long 占用8个 byte,值域是-9223372036854774808 ~ 9223372036854774807 浮点类型 float-有精度,值域复杂 340 ...
基于 Tongsuo(铜锁)实现国密通信
Created2023-12-14|信息安全
1 Tongsuo(铜锁)的编译12345git clone https://github.com/Tongsuo-Project/Tongsuo.gitcd Tongsuo./config --prefix=/opt/tongsuo enable-ntls no-sharedmake -jsudo make install 2 生成服务端测试证书 生成一个 EC 密钥对(私钥和公钥),使用 SM2 曲线参数,保存私钥为 server_sign.key 文件: 1openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:sm2 -out server_sign.key 使用私钥生成一个证书签名请求(CSR),并将其保存为 server_sign.csr 文件。该请求使用 SM3 散列算法,并且采用给定的主题信息: 1openssl req -config $CONF_DIR/subca.cnf -key server_sign.key -new -out server_sign.csr -sm3 -nodes -subj ...
国密介绍
Created2023-12-11|信息安全
1 简介铜锁/Tongsuo是一个提供现代密码学算法和安全通信协议的开源基础密码库,为存储、网络、密钥管理、隐私计算等诸多业务场景提供底层的密码学基础能力,实现数据在传输、使用、存储等过程中的私密性、完整性和可认证性,为数据生命周期中的隐私和安全提供保护能力。 铜锁应用场景: 存储加密 网络传输:支持 TLS 、QUIC 、RFC8998、TLCP安全传输协议 密码合规 密钥管理 隐私计算:支持同态加密、零知识证明等算法 铜锁与OpenSSL对比: 2 国密算法介绍国密常见的算法有 SM2 、SM3、SM4、SM9,具体分类如下: 对称加密算法: SM1算法:对称加密算法,用于替代国际标准的DES算法。 SM4算法:对称分组密码算法,被用于替代国际标准的AES算法。 非对称加密算法: SM2算法:非对称加密算法,用于数字签名、密钥协商等。 SM9算法:基于椭圆曲线密码体制的身份认证密码学算法。 哈希算法: SM3算法:密码哈希函数,用于替代MD5、SHA-1等哈希算法。 2.1 SM4 算法2.1.1 简介SM4是对称算法,与国际上的算法 如:AES 对 ...
Nginx支持国密实践
Created2023-12-03|信息安全
1 简介我国密码行业中有两个主要的通信协议相关的技术标准: 《信息安全技术 传输层密码协议(TLCP)》:即GB/T 38636-2020 《SSL VPN 技术规范》:即GM/T 0024-2014 上述协议关联标准:如数字证书标准GB/T 20518, SM2密码算法标准GB/T 35275等 《SSL VPN技术规范》作为行业标准,部分内容已上升为《信息安全技术 传输层密码协议(TLCP)》国密标准。 国密TLS,又称GMTLS1.1,GMTLS1.1中的1.1代表国密TLS的版本号: _0x0101_。众所周知,目前TLS协议支持的版本: 1234VersionTLS10 = 0x0301VersionTLS11 = 0x0302VersionTLS12 = 0x0303VersionTLS13 = 0x0304 目前主流的TLS软件程序实现中,通信实体在建立TLS连接时,会优先协商使用最大版本号TLS协议 _(版本号越大意味着安全性越高、性能越好)_,因此VersionGMSSL = 0x0101 版本号的设定增加了软件支持的复杂度,这也是阻碍GMTLS1.1广泛应 ...
OpenResty 性能优化
Created2023-11-21|后端&架构
1 性能下降10倍的真凶:阻塞函数OpenResty 之所以可以保持很高的性能,简单来说,是因为它借用了 Nginx 的事件处理和 Lua 的协程机制,所以: 在遇到网络 I/O 等需要等待返回才能继续的操作时,就会先调用 Lua 协程的 yield 把自己挂起,然后在 Nginx 中注册回调; 在 I/O 操作完成(也可能是超时或者出错)后,由 Nginx 回调 resume,来唤醒 Lua 协程。 这样的流程,保证了 OpenResty 可以一直高效地使用 CPU 资源,来处理所有的请求。在这个处理流程中,如果没有使用 cosocket 这种非阻塞的方式,而是用阻塞的函数来处理 I/O,那么 LuaJIT 就不会把控制权交给 Nginx 的事件循环。这就会导致,其他的请求要一直排队等待阻塞的事件处理完,才会得到响应。 下面,我再来介绍几个常见的坑,也就是一些经常会被误用的阻塞函数; 1.1 执行外部命令在业务中通常可以执行一些外部的命令和工具,来辅助完成一些操作。比如杀掉某个进程: 1os.execute("kill -HUP " ...
OpenResty API篇
Created2023-11-21|后端&架构
2 OpenResty开发平台2.1.1 协程和事件驱动在 OpenResty 层面,Lua 的协程会与 NGINX 的事件机制相互配合。如果 Lua 代码中出现类似查询 MySQL 数据库这样的 I/O 操作,就会先调用 Lua 协程的 yield 把自己挂起,然后在 NGINX 中注册回调;在 I/O 操作完成(也可能是超时或者出错)后,再由 NGINX 回调 resume 来唤醒 Lua 协程。这样就完成了 Lua 协程和 NGINX 事件驱动的配合,避免在 Lua 代码中写回调。我们可以来看下面这张图,描述了这整个流程。其中,lua_yield 和 lua_resume 都属于 Lua 提供的 lua_CFunction。 下面是 ngx.sleep 的一段源码,可以帮你更清晰理解这一点。 这段代码位于 ngx_http_lua_sleep.c 中,你可以在 lua-nginx-module 项目的 src 目录中找到它。在ngx_http_lua_sleep.c 中,我们可以看到 sleep 函数的具体实现。你需要先通过 C 函数 ngx_http_lua ...
OpenResty 基础篇
Created2023-11-21|后端&架构
0 参考资料 nginx-lua-module 中文版 nginx-lua-module 原版 API网关: KONG基于nginx+OpenResty Envoy APISIX 0.1 课程目录 1 入门篇1.1 初探OpenRestyOpenResty的三大特性: 详尽的文档和测试用例 同步非阻塞 动态 传统的Web服务器,比如NGINX,如果发生任何的变动,都需要去修改磁盘上的配置文件,然后重新加载才能生效,这是因为没有提供API,来控制运行时的行为。但OpenResty可以使用脚本语言lua来控制逻辑的,动态时Lua天生的优势。 1.2 第一个程序 下边通过使用Lua语言,使用OpenResty启动服务,然后响应打印出“hello world” 安装OpenResty 可以取官网下载源码进行编译安装(enter link description here) 2. 创建工作目录 创建工作目录,然后目录下创建日志和配置文件保存地方 123mkdir geektimecd geektimemkdir logs/ conf/ 编写nginx.conf 下边编写一个 ...
Go--基础篇
Created2023-11-20|Go & Python
0 参考资料GO开源项目收集:https://github.com/avelino/awesome-go 01 第一章 Go语言简介1.1 工作区和GOPATH工作区是放置Go源码文件的目录工作区下边有pkg、src、bin三个目录 pkg目录 用于存放归档文件(名称以.a为后缀的文件),所有归档文件都会被存放到该目录下的平台相关目录中,同样以代码包为组织形式 bin目录 用于存放当前工作区中的Go程序的可执行文件 当环境变量GOBIN已有效设置时,该目录会变的无意义 当GOPATH的值中包含多个工作区的路径时,必须设置GOBIN,否则无法成功安装Go程序的可执行文件 1.2 代码包的导入 本地化导入 123import . "strings"HasPrefix("abc", "a") //导入后使用函数不需要加包名 1.3 包管理1.3.1 Go的依赖管理 1.3.2 go mod12345678go mod init mod名称go build 源码文件go mod download 下载依赖包go mod ...
Python--常用工具包
Created2023-11-16|Go & Python
0 参考资料 Pandas中文文档 NumPy中文文档 1 Pandas 数据处理1.1 Pandas 数据结构 - SeriesPandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。 Series 由索引(index)和列组成,函数如下: 1pandas.Series( data, index, dtype, name, copy) 参数说明: data:一组数据(ndarray 类型)。 index:数据索引标签,如果不指定,默认从 0 开始。 dtype:数据类型,默认会自己判断。 name:设置名称。 copy:拷贝数据,默认为 False。 示例: 1234567891011121314151617181920212223242526272829# 从列表创建Series pd.Series(['a', 'b', 'c']) # 0 a # 1 b # 2 c # dtype: object # 自动创建索引 # 通过字典创建 ...
1…567
avatar
梦之痕
Articles
65
Tags
48
Categories
17
Follow Me
Announcement
个人笔记迁移中ing....
Recent Post
eBPF核心技术与实战2025-07-25
10 - 大模型RAG进阶实战营2025-05-28
大模型 RAG 的应用和开发2025-04-29
06 - WASM 插件开发2025-02-12
记录访问 HTTPS 网站报错问题2024-09-28
Categories
  • AI大模型2
  • Go & Python6
  • Java & Lua7
  • Linux 内核1
  • 人工智能&大数据4
  • 信息安全3
  • 后端&架构8
  • 工具使用3
Tags
LangChain Calico Kubernetes Nginx 深度学习 VPP Java 四层负载均衡 系统优化 虚拟化 Istio 网络 Tongsuo SO_REUSEADDR、SO_REUSEPORT MySQL 大模型 ebpf HTTP2 Python TLCP 设计模式 国密 软考高级 系统架构设计师 Redis DPDK Go 程序设计 杂文 RAG 数据库 Maven 大模型微调 Linux内核 Git 云原生 LVS 铜锁 HTTP3 Flink
Archives
  • July 20251
  • May 20251
  • April 20251
  • February 20251
  • September 20242
  • August 20244
  • July 20244
  • June 20244
Info
Article :
65
UV :
PV :
Last Update :
©2020 - 2026 By 梦之痕
Framework Hexo|Theme Butterfly