- 博客(43)
- 收藏
- 关注
原创 代码审计中的问题(不安全随机数)
Fortify漏洞:Insecure Randomness(不安全随机数)指的是代码中使用了不安全或弱随机数生成器导致的安全漏洞。随机数在密码学应用、加密和解密等领域中经常被使用,如果生成的随机数不够随机或不够复杂,则会使得攻击者可以轻易地猜出生成的随机数,从而对系统造成威胁。因此,在安全敏感的应用中,必须使用安全的随机数生成器。下面说的就是弱随机数,因为他通过时间戳相近会使随机数被限定在一个小范围内。
2023-11-29 19:19:33
442
原创 Edit And Resend测试接口工具(浏览器上的Postman)
F12——然后点击网络——在页面点击发起请求——然后选择要重发的请求右键选择Edit And Resend——在网络控制台设置自己要设置的参数去测试自己写的功能。可以不用设置Cookie或者Token,只设置参数进行重发接口测试API。
2023-11-24 19:25:43
790
原创 elasticsearch下载和安装(linux)看这一篇就够了
版本建议就按照我给的安装因为和java环境是配套的,java版本需要11以上的。128m是成功率最高的,其他的看你服务器内存大不大了。elasticsearch的版本选择。然后:wq退出执行下面的命令生效。下面这两个命令以备不时之需。启动方式2 后台启动。
2023-11-06 21:34:33
1099
原创 docker全家桶(基本命令、dockerhub、docker-compose)
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
2023-10-17 14:11:30
451
原创 git常用命令和开发常用场景
git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容(误操作后需要学git reflog挽救),撤销的commit中所包含的更改被冲掉。git reset –-mixed:回退到某个版本,只回退了commit的信息,并且恢复到index file一级。git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。模拟场景:当你接到一个修复一个代号101的bug的任务在master分支上,很自然地,你想创建一个分支。
2023-10-10 16:01:22
715
原创 钉钉实现扫码登录
2.实现扫码登录,通过用户钉钉登录或钉钉扫码登录获取用户信息,然后根据获取的信息在数据库中验证身份,得到完整信息,并生成该用户登录的token,并将用户信息存入token请求头,实现完整登录过程。我们小组用的是钉钉办公,所以我们开发一些网站都是服务于小组内成员,也就是企业内部钉钉用户,在之前已经实现了将钉钉用户信息同步在数据库中,所以我们直接根据钉钉开发文档实现第三方登录。1.根据钉钉官方给定的网址(网址中包含你最后要跳转到的你的项目地址)进入,让用户授权。也就是直接进入展示页面,而不是登录页面。
2023-08-10 20:39:51
4765
原创 前端部署流程详解
作用:用vue-cli内部集成的webpack,把 .vue, .less, .js 等打包成浏览器可直接执行的代码 html,css,js。这样的话你在服务器的这个路径上上传dist之后,你容器里面的 /etc/nginx/conf.d 这个路径下就会同时挂载上dist文件夹。2.复制配置文件(为什么以这种方式复制配置文件,详细看下面403问题博客,这个博主写的很清楚)结果:会在项目根目录下创建 /dist目录,在这个目录下产出打包后的结果。这个一般就是nginx的配置文件你写错了。
2023-08-10 10:22:11
1501
2
原创 保姆级服务器部署终极篇Golang
ls 查看所处文件夹下的文件cd . . 退出该文件夹返回该文件夹上一级docker ps 查看现在正在运行的进程查看所有的进程查看所有的镜像 cat + 文件名查看文件的前几行tail - f 日志名查看正在进行的日志less 日志文件可以分页滚动看日志查看端口lsof - i:端口号查看端口号进程grep - c "接口名称" / path/to/logfile . log查看日志文件接口被调用次数命令 ps - ef | grep main查看mian进程。
2023-07-31 17:01:56
118
原创 计算机网络面试题总结
三次握手机制:第一次握手:客户端请求建立连接,向服务端发送一个同步报文(SYN=1),同时选择一个随机数 seq = x 作为初始序列号,并进入SYN_SENT状态,等待服务器确认。第二次握手::服务端收到连接请求报文后,如果同意建立连接,则向客户端发送同步确认报文(SYN=1,ACK=1),确认号为 ack = x + 1,同时选择一个随机数 seq = y 作为初始序列号,此时服务器进入SYN_RECV状态。
2023-07-17 16:01:40
185
原创 golang 切片面试题
需要注意的是,扩容操作不仅仅是涉及到容量的扩容,同时也需要考虑到数据的拷贝问题。:main函数中定义了一个10个长度的整型数组array,然后定义了一个切片slice,切取数组的第6个元素,最后打印slice的长度和容量,判断切片的第一个元素和数组的第6个元素地址是否相等。然后执行AddElement函数中执行的是浅拷贝,返回了一个扩容后长度为4,容量为6的切片并赋给newSlice,所以原slice和newSlice的地址是不一样的。1、当需要的容量超过原切片容量的两倍时,会使用需要的容量作为新容量。
2023-07-04 16:31:27
299
原创 图解mysql——事务篇
例子:A读取余额大于50万的数据数量为10条,B插入了一条余额为60万的数据并且提交了事务,A再次读取数据数量为11条,两次读取数据的数量不一致,这种现象叫做幻读。例子:A第一次读取余额为100万,B更新余额为200万并且提交事务,此时A再次读取余额为200万,两次读取数据不一致,这种现象为不可重复读。例子:A读取余额时读取到了B把余额更新后的数据,但是B没有提交,如果发生回滚,则A读取的数据就是过期的,这种现象就是脏读。四种隔离级别可以避免一些问题。隔离程度从上到下越来越高。
2023-02-23 11:20:40
142
1
原创 图解mysql——索引篇(索引失效、count(*)和count(1)区别)
count()这个函数里面的参数时变量名的话就是不为NULL的数量,参数为1或者*时就是全部记录。
2023-02-22 19:53:57
1219
原创 图解mysql——索引篇3为什么 MySQL 采用 B+ 树作为索引
可以看到,二分查找法每次都把查询的范围减半,这样时间复杂度就降到了 O(logn),但是每次查找都需要不断计算中间位置二叉查找树的特点是一个节点的左子树的所有节点都小于这个节点,右子树的所有节点都大于这个节点每个节点的左子树和右子树的高度差不能超过 1。也就是说节点的左子树和右子树仍然为平衡二叉树,这样查询操作的时间复杂度就会一直维持在 O(logn)。下面是红黑树插入节点的过程,这左旋右旋的操作,就是为了自平衡。
2023-02-22 16:49:18
105
原创 力扣~215. 数组中的第K个最大元素
快速选择算法是基于快速排序的算法,它的基本思路是通过划分(partition)将数组分为两部分,一部分大于等于基准值,一部分小于基准值。在每次递归中,选取数组中随机的一个元素作为枢纽元,并将数组分为左右两部分,然后对其中一部分进行递归,直到pivot的位置为k或者只有一个元素。快速选择算法可以在O(n)的时间复杂度内,找到一个无序数组中第k大的数。如果pivot的位置小于k,则在右侧继续查找第k大的数,否则在左侧继续查找第k大的数。如果pivot的位置是k,则找到了第k大的数。
2023-02-20 21:20:09
95
原创 图解mysql——索引篇2从数据页的角度看B+树
知识点:1.InnoDB的数据读写单位是【数据页】 (下图是数据页的结构)2.数据页默认大小是16KB3.数据页中的记录按照主键顺序组成单向链表页目录创建的过程如下:1.将所有的记录划分成几个组,这些记录包括最小记录和最大记录,但不包括标记为“已删除”的记录;2.每个记录组的最后一条记录就是组内最大的那条记录,并且最后一条记录的头信息中会存储该组一共有多少条记录,作为 n_owned 字段(上图中粉红色字段)3.页目录用来存储每组最后一条记录的地址偏移量,这些地址偏移量会按照先后顺序存储起来,
2023-02-20 19:47:03
175
原创 牛客——JZ45把数组排成最小的数GO语言
只考虑首字符的大小不可靠,但是如果字符串a拼接b的得到的数字大于b拼接a,那么肯定b应该排在a的前面,我们要就按照这样的次序将排序的比较重载就可以了。这道题呢最重要的解决怎么样组装的数字是最小的,按照什么顺序组装?如果我们能得到这个次序,直接将这个次序的数字拼接在一起就好了。
2023-02-20 09:43:29
342
原创 图解mysql——索引基础面试篇
定义:索引就是帮助存储引擎快速获取数据的一种数据结构,简单说索引是数据的目录主键索引二级索引B+ 树的非叶子节点不存放实际的记录数据,仅存放索引,因此数据量相同的情况下,相比存储即存索引又存记录的 B 树,B+树的非叶子节点可以存放更多的索引,因此 B+ 树可以比 B 树更「矮胖」,查询底层节点的磁盘 I/O次数会更少。B+ 树有大量的冗余节点(所有非叶子节点都是冗余索引),这些冗余索引让 B+ 树在插入、删除的效率都更高,比如删除根节点的时候,不会像 B 树那样会发生复杂的树的变化;B+ 树叶子节点
2023-02-16 20:46:56
163
原创 Go为什么没有三目运算符
什么是三目运算符这种问题对于编程老手来说简直是侮辱智商的问题,但为了篇幅的完整性,还是得要提一下。首先,看一下不支持三目表达式特性的 Go 语言的写法genderDesc = "男" } else {genderDesc = "女" } fmt . Println(genderDesc)再看一下支持三木表达式特性的 C++ 语言的写法"男" : "女");没错,这个?:就是三目运算符的典型语法。
2023-02-16 20:41:31
577
原创 图解mysql——基础篇
Server层按顺序执行sql的步骤为:1.客户端请求->2.连接器(验证用户身份,给予权限) ->3.查询缓存(存在缓存则直接返回,不存在则执行后续操作)->4.分析器(对SQL进行词法分析和语法分析操作) ->5.优化器(主要对执行的sql优化选择最优的执行方案方法) ->6.执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口)->7.去引擎层获取数据返回(如果开启查询缓存则会缓存查询结果)概括总结:命令长连接与短连接总结:流程:1.连接器工作结束,mysql
2023-02-16 08:43:01
385
原创 Golang逃逸分析
栈上分配内存比在堆中分配内存有更高的效率栈上分配的内存不需要GC处理堆上分配的内存使用完毕会交给GC处理逃逸分析目的是决定内分配地址是栈还是堆逃逸分析在编译阶段完成。
2023-02-13 11:29:23
133
原创 力扣~162.寻找峰值 Go语言
本题的一个重要特点是提示三中相邻两个元素不相等,那么从第一个元素开始,若其大于相邻的后续元素,则第一个元素就是一个局部最大值,返回即可。若其小于相邻的后续元素,则第二个元素大于第一个元素。如此,一一遍历数组,第一次出现,第i个元素若大于其相邻后续元素,则该元素就是一个局部最大值,返回即可。时间复杂度为O(n)
2023-02-07 14:34:43
262
原创 垃圾回收原理
对每个对象维护一个引用计数,当引用该对象的对象被销毁时,引用计数减1,当引用计数器为0是回收该对象。:对象可以很快的被回收,不会出现内存耗尽或达到某个阀值时才回收。:不能很好的处理循环引用,而且实时维护引用计数,有也一定的代价。:从根变量开始遍历所有引用的对象,引用的对象标记为”被引用”,没有被标记的进行回收。:解决了引用计数的缺点。:需要STW,即要暂时停掉程序运行。:Golang(其采用三色标记法)
2023-02-04 22:07:44
580
原创 内存分配原理
有了管理内存的基本单位span,还要有个数据结构来管理span,这个数据结构叫mcentral,各线程需要内存时从mcentral管理的span中申请内存,为了避免多线程申请内存时不断地加锁,Golang为每个线程分配了span的缓存,这个缓存即是cache。cache作为线程的私有资源为单个线程服务,而central则是全局资源,为多个线程服务,当某个线程内存不足时会向central申请,当某个线程释放内存时又会回收进central。3.从mcache的alloc[class]链表中查询可用的span。
2023-02-03 21:57:10
304
1
原创 GMP原理与调度
M 与 P 的数量没有绝对关系,一个 M 阻塞,P 就会去创建或者切换另一个 M,所以,即使 P 的默认数量是 1,也有可能会创建很多个 M 出来。
2023-02-02 22:03:25
442
原创 mysql容器中mysql命令无法输入中文
这里我想输入中文输入不了,这会导致你想用原生sql语句插入中文数据插入不了,你复制sql语句中有中文也复制不上去。
2022-12-22 20:30:55
1108
1
原创 02、两数相加 力扣
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。...
2022-07-25 22:26:58
76
原创 docker后端部署流程及遇到的问题
注意点:(我遇到的bug)1.第一句一定要写对应自己安装的centos版本写清楚版本号。2.golang版本下载1.17的不然有的依赖会找不到,在docker上跑自己的项目的时候会报错golang1.14 undefined: os.ErrDeadlineExceede3.生成并运行容器4.生成之后将项目和Dockerfile一起放在主机对应位置(Xftp)这样上一步容器里对应挂载的位置也有了第四步不行的,很大可能是因为数据库没有连接上,查看镜像然后生成mysql的容器,可以用Navicat连接上
2022-07-04 11:12:20
1289
原创 P1205 [USACO1.2] 方块转换 Transformations
一块 n×nn \times nn×n 正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式:转 90°90\degree90°:图案按顺时针转 90°90\degree90°。转 180°180\degree180°:图案按顺时针转 180°180\degree180°。转 270°270\degree270°:图案按顺时针转 270°270\degree270°。反射:图案在水平方向翻转(以中央铅垂线为中心形成原图案的镜像)。组合:图案在水
2022-06-21 08:13:58
165
原创 第十一届蓝桥杯JAVAB组--蛇形填数---数学规律做法
1 2 6 7 15 16 3 5 8 14 17 4 9 13 18 10 12 19 25 11 20 41 21 第n行第n列的数分别是1、5、13、25、41public class C { public static void main(String[] ar
2022-03-30 19:58:48
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人