- 博客(46)
- 资源 (5)
- 收藏
- 关注
原创 数字安全二之密钥结合消息摘要
HMACSHA256是一种使用 SHA-256 哈希算法的 HMAC(基于哈希的消息认证码,Hash-based Message Authentication Code) 机制。它结合了【散列函数】 和 【密钥】,用于确保消息的完整性和真实性。
2024-09-25 11:27:31
1898
原创 数字安全一之消息摘要
消息摘要(Message Digest)是加密术语中一种通过散列函数生成的【固定长度的字符串】。它是对任意长度的输入消息(如文件、字符串等)进行处理后产生的【固定长度的唯一标识符】完整性校验:通过生成消息的摘要值,可以在接收方对收到的消息进行相同的摘要计算,若摘要值相同,说明消息未被篡改;若摘要值不同,则表明消息可能被修改。数字签名:消息摘要是数字签名算法的重要组成部分。发送方可以通过对消息摘要进行加密,生成数字签名,接收方则可以通过解密并对消息进行摘要比对,确保消息的真实性和完整性。
2024-09-24 16:37:45
1109
原创 国际化项目开发中关于时间的问题三
ZonedDateTime 和 LocalDateTime 是 Java 8 引入的新时间 API,提供了更强大和灵活的日期和时间处理功能,推荐在新开发中使用。Date: 属于 java.util 包,是 Java 早期版本中用于表示日期和时间的类,最早在 JDK 1.0 中引入。ZonedDateTime: 表示带有时区的完整日期和时间,包括年、月、日、小时、分钟、秒、纳秒以及时区信息。LocalDateTime: 表示不带时区的日期和时间,包括年、月、日、小时、分钟、秒和纳秒。这容易导致线程安全问题。
2024-08-16 14:19:44
787
1
原创 国际化项目开发中关于时间的问题二
System.currentTimeMillis()是jvm通过c语言实现的获取UTC时间戳的方法,看到这里还是没看到时区,继续往下看.TimeZone.getDefaultRef()方法返回时区,继续看。为什么没有传入指定时区情况下new Date会正确显示当地时间。我们是通过toString()打印当地时间信息的,我们看代码。setDefaultZone方法。继续看normalize方法。
2024-06-17 16:57:34
399
原创 国际化项目开发中关于时间的问题一
在上述代码中,我们生成了东八区晚上九点的时间,然后转换为时间戳,最后将这个时间戳转换为东十区的时间。时区转换1:时间是分时区的,如果把【时间戳】转【时间】,需要把时区加进去,同理,【时间】转【时间戳】时,也需要把时区加进去。时间与时区关系:时区决定了本地时间与UTC时间的偏移量。时间戳:不区分时区,表示自1970年1月1日00:00:00 UTC以来的秒数或毫秒数。时区转换2:将时间戳转换为可读时间时,需要考虑时区,以便正确显示本地时间。东八区时间: 2023-06-01 21:00:00 +0800。
2024-06-17 14:23:35
760
原创 postman工具使用
2.2 更多的测试用例可以参考右侧的snippets代码,鼠标单击后会出现示例代码。1.3 在 my test路径下新建folder 1.1.0 api。request 请求下都会带上面的公共请求头参数。{{postParam}}是前一个接口设置的变量。实现前一个接口响应结果传递给下一个接口作为参数。这里显示三个测试用例是pass通过的状态。第一个接口,需要在test 菜单编写脚本。点击发送接口,会显示每个测试用例的结果。多个接口进行简单的关联测试,并。第二个接口获取环境变量里的参数。
2024-05-10 16:22:48
739
2
原创 ArrayList在添加元素时报错java.lang.ArrayIndexOutOfBoundException
ArrayList在并发场景下添加元素发生数组越界
2024-01-31 10:49:16
1506
原创 mysql存在10亿条数据,如何高效随机返回N条纪录,sql如何写
1.使用ORDER BY RAND():LIMIT 1;这将随机排序表中的所有行,并且通过LIMIT 1仅返回第一行,从而返回一个随机记录。然而,对于大型表来说,ORDER BY RAND()可能会导致性能问题,因为它需要对整个表进行排序。
2023-10-27 11:14:31
890
2
原创 java使用正则提取数据
结合正则的分组模式$1、$2可以提取,但是在实际java开发中,字符串格式发生了变化,字符串多了空格和换行等,因此需要再完善正则表达式。需要对一个json结构做数据的提取,提取label和value的值,组成新的结构,西瓜:0、苹果:1、草莓:2。最终调试改为如下正则写法,三种情况的json字符串都可以匹配。只能匹配变种1,原始json字符串和变种2不适应,原始json字符串如下格式。
2023-09-22 10:44:01
2274
原创 apache benchmark(ab) 进行压测
一、apache benchmark使用PS D:\installed-software\Apache24\bin> ./ab.exe -helpUsage: D:\installed-software\Apache24\bin\ab.exe [options] [http://]hostname[:port]/pathOptions are: -n requests Number of requests to perform -c concurrency Numbe...
2022-05-17 20:02:45
1218
原创 mysql update多个关联表查询字段
首先查看2个表关联查询字段SELECT uk.create_time, up.end_time FROM table_uk uk INNER JOIN table_up up on uk.id = up.user_id and up.status = 1 where uk.name != '';2个表关联查询,把A表某字段更新到B表,这里用传统的写法,而不能inner join、left join写法update table_uk uk, table_up up set uk.create_time
2021-07-02 14:31:49
1197
原创 解决mysql where条件查询emoji表情出现数据重复问题
1、背景查询emoji萝卜这个表情时,把其他的表情也关联查出来了2、解决 2.1、在where查询字段添加binary关键字,BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写 eg:select name from table where binary name = ???? 2.2、把字段的COLLATE 改为utf8mb4_bin...
2021-04-12 11:41:54
1258
1
原创 使用Navicat快速生成MySQL数据字典
转载地址:https://www.cnblogs.com/lukefan/p/10445285.html1、通过information_schema.COLUMNS表查询该表可得到所需字段信息SELECT * FROM information_schema.COLUMNS;如下图所示2、示例SQL语句如下SELECT t.TABLE_SCHEMA AS 库名, t.TABLE_NAME AS 表名, t.COLUMN_NAME AS 字段名, t.COLUM.
2021-04-09 15:37:53
447
1
原创 被private修饰的变量没有set函数也能赋值
众所周知,被private修饰的变量,只能在本类访问 访问权限 本类 本包的类 子类 非子类的外包类 public 是 是 是 是 protected 是 是 是 否 defau
2021-02-22 20:13:41
1576
1
转载 ES索引写入性能优化
1、用bulk批量写入你如果要往es里面灌入数据的话,那么根据你的业务场景来,如果你的业务场景可以支持让你将一批数据聚合起来,一次性写入es,那么就尽量采用bulk的方式,每次批量写个几百条这样子。bulk批量写入的性能比你一条一条写入大量的document的性能要好很多。但是如果要知道一个bulk请求最佳的大小,需要对单个es node的单个shard做压测。先bulk写入100个document,然后200个,400个,以此类推,每次都将bulk size加倍一次。如果bulk写入性能开始变平缓
2020-10-20 16:55:27
511
原创 生产环境内存溢出(OOM)排查
背景1:系统通过MQ接受数据,经过业务处理,调用第三方推送SDK api2:系统上线后(使用腾讯skd),线程数达到15K(1w5个线程)3:报错:java.lang.OutOfMemoryError: unable to create new native thread,内存溢出排查1:查看tcp状态1.1:establish状态有4k,在系统高峰并发下,这么多建立连接可以理解为正常1.2:close_wait达到了13w, 说明是服务端(推送sdk服务端)主.
2020-09-01 14:25:03
1948
原创 使用arthas修复线上代码
# 反编译$ jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java不指定输出/tmp路径,默认是当前路径(通过pwd命令查看路径)# 修改文件$ vim /tmp/UserController.java# 查找加载的 ClassLoader$ $ sc ...
2020-02-24 17:33:12
1085
1
原创 搭建apollo配置中心
推荐使用源码自己构建部署,适合需要自定义自己的环境环境,如test1,test2等进入scripts目录,执行build.sh完,每个模块的target会出现zip压缩包。一、安装agent端apollo-configservice1:创建数据库,执行apolloconfigdb.sql脚本2: 解压apollo-configservice-1.5.1-github.zip压缩包3:进...
2020-01-19 15:05:29
462
原创 aop多个切面的访问顺序
spring涉及切面编程,aop提供@Order的注解,存在多个的情况下,order的值越低优先级越高切面包括before、after、around、afterReturning、afterThrowing请求方法 -> order(1) -> order(2) -> order(3) -> 目标方法 -> 响应(正常响应或异常)...
2020-01-08 14:45:14
683
1
apollo压缩包.zip
2020-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人