java
文章平均质量分 71
知识分子_
QQ:1149513559
展开
-
可逆与不可逆算法,对称加密与非对称加密算法总结
文章目录1. 加密算法的种类2. 不可逆加密算法①:MD5②:HMAC系列③:SHA系列3. 可逆加密算法1. 对称加密①:DES②:3DES③:AES2. 非对称加密①:RSA4. Base64编码5. BCrypt1. 加密算法的种类加密算法分为可逆、不可逆加密算法。而不可逆加密算法又分为对称加密和非对称加密不可逆加密:不可逆加密算法最大的特点就是不需要密钥,但是HMAC是需要密钥的!常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-原创 2021-07-01 15:44:03 · 7175 阅读 · 2 评论 -
开发中常用的小脚本、工具
两个字段的中间字符做脱敏。原创 2023-08-24 10:48:23 · 381 阅读 · 0 评论 -
Easyexcel为什么不解析二进制的excel文件,而要通过解析xml内容来完成解析?
通过将 Excel 文件解析为 XML 内容,EasyExcel 能够有效地处理大型的 Excel 文件,并且在解析过程中可以选择读取特定的数据或者只处理部分数据,以节省内存和提高读取性能。总之,EasyExcel 选择解析 Excel 文件的 XML 内容而不是直接解析二进制格式的 Excel 文件,是为了实现兼容性、解析性能、内存管理和灵活性的平衡。因此,可以说 EasyExcel 在读取 Excel 文件时实际上是处理 Excel 文件的 XML 内容,而不是直接处理二进制格式的 Excel 文件。原创 2023-07-13 20:24:01 · 501 阅读 · 0 评论 -
java实现一个计算器:输入计算公式即可输出结果
以上使用双栈实现的计算器,测试代码运行结果如下。原创 2023-06-19 22:48:56 · 1063 阅读 · 1 评论 -
oracle日期与字符串的相互转化
1.字符串转为日期格式(to_date)例1:把字符串类型2005-01-01 13:14:20 转成 2005/1/1 13:14:20日期格式select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;结果:例2:把字符串类型30-11月-19 转成 2018/12/31 日期格式select to_date('30-11月-19 ', 'dd-mon-yy') from dual结果:注意:字符串原创 2020-05-12 17:44:12 · 35013 阅读 · 0 评论 -
java找出两个List集合的重复项
上代码package Basic.list;import java.util.Arrays;import java.util.List;import java.util.Objects;import java.util.stream.Collectors;public class Java8Test { public static void main(String[] args) { // 老师集合 List<Teacher> teache原创 2021-11-29 00:44:32 · 11278 阅读 · 0 评论 -
如何保证接口幂等性?
文章目录1. 为什么要保证幂等性?2. 如何实现幂等性①:数据库唯一主键②:CAS乐观锁机制 1. 为什么要保证幂等性? 幂等性要求任意多次执行对资源本身所产生的影响均与一次执行的影响相同,如果不保证幂等性,在发生如下情况时就会出现问题:前端重复提交表单: 在填写一些表格时候,用户填写完成提交,很多时候会因网络波动没有及时对用户做出提交成功响应,致使用户认为没有成功提交,然后一直点提交按钮,这时原创 2021-06-23 18:09:45 · 2479 阅读 · 2 评论 -
如何在服务器上使用宝塔面板?
文章目录1. 宝塔面板的优势2. 宝塔面板的安装3. 云服务器开放端口,进入宝塔控制台4. 使用宝塔面板安装服务 1. 宝塔面板的优势没有用宝塔面板之前,我是这样搭建网站的:用xshell等远程连接软件连接云服务器手工安装PHP运行环境(LNMP+LAMP)或Java运行环境安装各种软件,如mysql、redis等等缺点:费时费力,需要查找并输入各个服务的安装命令,如果没有个人笔记原创 2021-06-14 17:28:56 · 5962 阅读 · 3 评论 -
接口性能优化建议
1.影响性能的因素数据库、应用程序、中间件(tomcat,nginx)、网络和操作系统等,不管是哪些方面,先想好程序是cpu密集型还是IO密集型。cpu密集型:大量计算、排序、过滤等场景 ,可通过升级服务器,增加cpu,增加机器数量来解决。io密集型:大量的读写操作。可通过缓存技术、加固态硬盘来解决...原创 2020-06-30 18:04:29 · 3148 阅读 · 0 评论 -
使用Spring Secuirty Oauth2实现SSO单点登录
文章目录1. 什么是单点登录2. 微服务架构下单点登录的思路3. 使用 Spring Secuirty Oauth2 实现SSO单点登录①:建表②:授权服务器逻辑③:网关逻辑1. 什么是单点登录 单点登录的英文名叫做:Single Sign On(简称SSO)。在早期系统中,大部分项目都是单体架构,随着互联网的发展以及用户量的提升,为了合理利用资源和降低耦合性,于是把单系统拆分成多个子系统。单点原创 2021-05-29 20:49:27 · 993 阅读 · 3 评论 -
Spring Security OAuth2整合JWT
文章目录原创 2021-05-28 22:15:30 · 2814 阅读 · 3 评论 -
Outh2协议有哪四种授权模式?
文章目录1. OAuth2介绍2. OAuth2的四种授权模式①:授权码模式②:密码模式③:简化(隐式)模式④:客户端模式3. 令牌token的携带方式 1. OAuth2介绍 OAuth2并不是一个框架,而是一个关于授权(authorization)的开放网络标准,是一个授权协议!OAuth在全世界得到广泛应用,目原创 2021-05-28 17:38:47 · 2101 阅读 · 0 评论 -
数据结构可视化网址
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html原创 2020-07-16 21:40:09 · 663 阅读 · 0 评论 -
maven依赖下载失败问题
文章目录1. idea右侧的maven不显示Dependencies问题解决2. maven下载失败:需要SSL证书 1. idea右侧的maven不显示Dependencies问题解决当我们把项目放入idea时,有时候右侧的maven栏不显示Dependencies,可以点击项目,选择Reload project大概率会出现Dependencies &nbs原创 2021-05-11 21:37:00 · 1322 阅读 · 0 评论 -
springboot防止XSS攻击和sql注入
文章目录1. XSS跨站脚本攻击①:XSS漏洞介绍②:XSS漏洞分类③:防护建议2. SQL注入攻击①:SQL注入漏洞介绍②:防护建议3. SpringBoot中如何防止XSS攻击和sql注入 1. XSS跨站脚本攻击①:XSS漏洞介绍 跨站脚本攻击XSS是指攻击者往Web页面里插入恶意Script代码,当用户浏览原创 2021-03-19 11:07:09 · 3496 阅读 · 0 评论 -
java七大设计原则,23种设计模式
点击查看七大设计原则,23种设计模式原创 2021-01-28 12:34:58 · 256 阅读 · 0 评论 -
本地项目推送至git上
文章目录本地项目推送到git原创 2021-01-11 10:24:58 · 243 阅读 · 0 评论 -
/dev/sda2占用100%、磁盘占用100%的怎么解决?
文章目录1. 场景2. 解决方案1. 场景 在linux环境下安装mysql时,解压时出现解压失败,原因时空间不足!通过 df -h 命令查看磁盘空间,发现**/dev/sda2** 的空间已经被占用了100%,怪不得解压失败。2. 解决方案首先使用 lsof -n |grep deleted 命令查看一下已删除、但空间却没有释放的进程发现最后三个进程,占用空间较大,有180M左右,但远不到18g,原创 2021-01-03 14:11:10 · 14322 阅读 · 2 评论 -
java代码中出现乱码怎么解决?
如下表可根据上边针对性解决乱码问题!原创 2020-12-22 17:02:46 · 625 阅读 · 0 评论 -
java多态子父类的构造器、成员变量、方法的调用关系
1.结论①:成员变量没有多态,方法才有多态Father gay = new Son();gay.money 是属于父类的((Son) gay).money 才是子类的②:Father gay = new Son(); 在执行时,会先调用父类无参构造。除非指定super(参数)方法。③:只有被重写的方法,使用gay.xxx()调用的才是子类的!还有更多结论 代码一跑就知道了public class B { public B() { System.out.println原创 2020-08-06 10:25:52 · 1881 阅读 · 0 评论 -
JWT的加密解密原理,token登出、改密失效、自动续期
1.两种token认证方式1.传统的token认证用户登录,服务端给前端返回token,并将token保存在服务端。以后用户再来访问时,需要携带token,服务端获取token后再去数据库获取token做校验。2.JWT的token认证用户登录,服务端给用户返回一个token(服务端不保存)以后用户再来访问时,需要携带token,服务端获取token做校验3. 两种认证方式对比:jwt相对于传统的token认证,无需将token保存在服务端。2.jwt的token加密解密过程2.1 生原创 2020-07-10 09:56:12 · 20272 阅读 · 10 评论 -
java使用http代理访问服务器
上工具类,亲测有效1.创建代理地址(公共方法、所有代理引用)public static HttpHost addProxy(){ //代理地址、端口号、协议 return new HttpHost("9.236.225.252", 8080, "http"); //添加代理 }2. get请求 (带参数) public static String doGet(String url, Map<String, String> param) { // 创建代理地址原创 2020-07-03 12:36:22 · 2057 阅读 · 0 评论 -
springboot整合Shiro实现权限控制框架(结合renrenfast分析)
Shiro是一个优秀的权限控制安全框架,核心在于认证和授权认证:你是谁?授权:你能做什么?下面结合码云上的renren-fast源码分析Shiro在springboot项目中作为权限控制框架的应用。1.引入shiro依赖两种选择其一即可 <-- 第一种:shiro核心依赖2个 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-c原创 2020-06-24 18:20:07 · 1536 阅读 · 4 评论 -
自定义注解的使用场景
自定义注解使用场景:登陆拦截,AOPJSR303自定义校验方法原创 2020-05-26 10:03:02 · 483 阅读 · 0 评论 -
springboot使用JSR303对数据进行校验
在前后端分离项目中,前端通过制定rules校验数据,能最早的让用户发现输入错误,如果使用postman发送数据,就会跳过前端校验,因此需要后端同样需要做验证。步骤1.给bean添加校验注解导入 javax.validation.constraints,并定义自己的message提示 @NotBlank(message = "账号不能为空") private String account; @NotBlank(message = "密码不能为空") private Stri原创 2020-05-19 17:51:39 · 1375 阅读 · 0 评论 -
IDEA的常用插件
1.LombokLombok为Java项目提供了非常有趣的附加功能,使用它的注解可以有效的地解决那些繁琐又重复的代码,例如 Setter、Getter、toString、equals、hashCode 以及非空判断等。举个例子,我们给一个类添加@Getter和@Setter注解Lombok就会为我们自动生成所有属性的Getter和Setter方法。2.Free MyBatis PluginMyBatis扩展插件,可以在Mapper接口的方法和xml实现之间自由跳转,也可以用来一键生成某些xml原创 2020-05-13 16:45:29 · 720 阅读 · 0 评论 -
如何初始化一个vue项目
1.先安装node(略)2.npm 设置成淘宝源:npm config set registry https://registry.npm.taobao.org都安装完成后,可以命令行工具中输入 node -v 和 npm -v,如果能显示出版本号,就说明安装成功。3.安装vue-cli客户端(使用vue)直接全局安装 vue-cli,用cnpm 会快一些cnpm install -g vue-cli4.初始化项目(构建项目)vue init webpack Vue-Project(项目原创 2020-05-12 22:48:08 · 1274 阅读 · 0 评论 -
IDEA如何添加本地项目到git上
1.先创建本地仓库在idea的菜单项选择 VCS》Import into Version Control ===> Create Git Repository原创 2020-04-30 22:27:01 · 866 阅读 · 0 评论 -
java8使用stream操作集合类,如何使用bigDicemal计算工资?
处理map中的value的值为null或空字符串时,可以用以下的工具方法public static Map<String, Object> parseMapForFilter(Map<String, Object> map) { if (map == null) { return null; } else { ...原创 2020-04-21 22:38:38 · 1601 阅读 · 0 评论 -
springboot + vue项目跨域请求解决方案
添加链接描述原创 2020-01-03 09:35:23 · 335 阅读 · 0 评论 -
删除本地端口指令(启动时提示端口已经被使用)
当我们项目启动时,经常会遇到APPLICATION FAILED TO STARTDescription:The Tomcat connector configured to listen on port 8097 failed to start. The port may already be in use or the connector may be misconfigured....原创 2019-11-18 12:26:54 · 1053 阅读 · 0 评论 -
windows版本下的 redis 集群配置
windows版本下的 redis 集群配置https://www.cnblogs.com/thirteen-zxh/p/9187875.html ( 集群后篇)https://www.cnblogs.com/tommy-huang/p/6240083.html (下载并安装ruby,下载ruby环境下Redis的驱动,考虑到兼容性,这里下载的是3.2.2版本下载Redis...原创 2019-11-12 11:52:12 · 313 阅读 · 0 评论 -
Mybatis动态sql的使用
Mybatis动态sqlMybatis的一个强大特性之一通常是它的动态SQL能力。大概分为以下四种1、 if2、 choose,when,otherwise3、 where set trim4、 foreach1. if(判断)案例:查询男性用户,如果输入了用户名,按用户名模糊查询在UserMapper接口中定义方法:public List<User> queryU...原创 2019-10-31 23:01:06 · 375 阅读 · 0 评论 -
SpringScerity的使用
SpringScerity的使用1.1 加入SpringSecurity依赖 <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>4.2...原创 2019-10-31 22:38:27 · 374 阅读 · 0 评论 -
上传文件的加密和下载文件解密
文件上传加密在很多应用场景中,出于安全考虑,我们不得不实行上传文件时对文件进行加密,存入服务器的文件就会变成二进制文件,当别人直接冲服务器拿到文件时,也无法查看,这就保证了安全性。但是我们需要在页面上查看自己上传的文件,这时候就需要再次请求服务器文件的解密接口,通过解密代码,获得原来的图片,这样对于一些银行等相关业务可有效的保证安全性。首先导入文件加密解密工具类public clas...原创 2019-10-31 18:50:40 · 5007 阅读 · 1 评论 -
JSON字符串和实体类的相互转化
1.在java中,我们经常会用到json字符串和json对象的相互转化。首先导入fastjson依赖 <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson...原创 2019-10-15 12:19:01 · 1181 阅读 · 0 评论 -
如何删除集合(数组)中指定的元素
如何删除集合(数组)中指定的元素##1.首先删除数组中的元素,没有特定的api由于没有特定的快捷删除的api,所以就自己来实现,最后封装成工具方法实现思路: 1.用最后一个索引位置的元素来替代想要删除的索引位置的元素 2.把原数组进行缩容代码: ...原创 2019-10-13 12:59:29 · 9116 阅读 · 0 评论 -
java中BigDicemal的运算
BigDicemal的加减乘除运算使用java1.7语法://两个BigDecimal进行相加BigDecimal b1 = new BigDecimal(“100.00”);BigDecimal b2 = new BigDecimal(“0.03”);System.out.println(b1.add(b2)); //加 100.03System.out.println(b1.su...原创 2019-10-09 17:37:17 · 2825 阅读 · 0 评论