自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据脱敏处理

场景 : 数据存储到数据库时 , 除了密码 , 支付密码等敏感数据使用MD5等不可逆的方式加密外 , 其他的一些数据也需用到脱敏处理 , 如手机号 , 身份证号 , 银行卡号等 , 主要原因是当前登录用户或权限用户可能会用到此数据作为前端显示 , 此时需要使用对称加密的方式加密并解密 .1.方式一直接使用AES加密 , 解密 , 缺点是查询时需要遍历解密后传给前端2.方式二注解的方式加密解密 , 直接操作实体类1.AES加密代码public class AESUtil {public sta

2022-01-26 14:06:07 4961

原创 swagger2的使用java集成

1.pom文件添加对应的依赖io.springfoxspringfox-swagger22.9.2io.springfoxspringfox-swagger-ui2.9.22.启动类开启swagger2@SpringBootApplication@EnableSwagger2public class DemoApplication { public static void main(String[] args) { SpringApplication.ru

2022-01-25 14:57:12 268

原创 线程池相关

线程池的作用第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行第三:提高线程的可管理性创建线程池的四种方式newSingleThreadExecutor():创建一个单线程化的线程;newFixedThreadPool():创建一个定长线程池;newCachedThreadPool():创建一个缓存线程池;newScheduledThreadPool() :创建一个定时任务线程池;new Thr

2022-01-23 17:08:48 120

原创 多线程相关

多线程创建的方式1.继承Thread类 , 覆盖run方法 , 调用start方法public class MyThread extends Thread{ @Override public void run() { for (int i = 0; i <10 ; i++) { System.out.println("打游戏"+i); } }}测试类public class Wee{public static

2022-01-23 16:16:34 1977

原创 身份证号 正则判断

public class IDCardUtils { public static boolean isIDNumber(String IDNumber) { if (IDNumber == null || "".equals(IDNumber)) { return false; } // 定义判别用户身份证号的正则表达式(15位或者18位,最后一位可以为字母) String regularExpression

2022-01-23 14:29:10 577

原创 java雪花算法

使用场景 : 雪花算法能生成唯一18位id , 适用于生成订单id等 , 优点普通自增id , 可能通过id计算出当天或本月的销量 , 雪花算法可以避免这个问题java代码实现class SnowFlake {// ==============================Fields===========================================/** 开始时间截 (2015-01-01) */private static final long twepoch = 1

2022-01-23 13:55:04 3751

原创 手机短信发送

使用场景 : 手机验证码, 一般作为权限校验 , 授权 , 消息通知等配合使用 : 如果作为短信验证码 , 则一般配合redis使用 , 如果是普通的短信通知则不需要以阿里云实现验证码为例:java实现1&.短信验证接口@GetMapping("/getMessageCode/{phone}")public Result getMessageCode(@PathVariable String phone) { String messageCode = RandomUtils.ge

2022-01-23 11:37:28 738

原创 简单的图形码生成工具

使用场景 : 项目做登录 , 账号修改等使用图形码做验证配合使用 : redis+sessionredis : 生成对应的图形码数字后 , 存入redis缓存起来 , 作为登录检验seesion : 多个用户同时访问登录页面 , 会刷新多个验证码 , 解决redis中存储图形码Key的问题 , 每一个用户登录都会对应一个session对象 , 生成随机uuid存入session中 , 每个用户以uuid作为key存入redis做为区分java绘制二维码实现类/**将二维码绘制成图片*/p

2022-01-23 11:08:48 682

原创 OSS图片上传

使用场景 : 项目开发时 , 针对项目需要上传图片的部分一般使用第三方的服务器作为图片或文件的存储以阿里云Oss图片上传为例public class UploadUtil { //注意com后面有"/" public static final String ALI_DOMAIN = "https://******.oss-cn-shenzhen.aliyuncs.com/"; public UploadUtil() { } public static String

2022-01-23 10:43:11 521

原创 MD5加密

使用场景 : MD5/SHA1算法为不可逆的加密算法 , 适用于比较敏感的数据 , 如 登录密码,支付密码等使用情况 : 对敏感数据加密后, 存入关系型数据库 , 校验时 , 使用相同的加密算法加密 , 进行校验 , 加密数据相同时 , 加密后的数据也相同 , 对于敏感的数据来说是不安全的 , MD5可以使用加盐的方式来提高数据的安全性.java实现MD5public class MD5Utils {/** * byte[]字节数组 转换成 十六进制字符串 * * @param arr 要转换

2022-01-23 10:31:32 2714

原创 AES加密

适用场景 : AES为对称加密算法 , 加密后可以解密 , 可用做脱敏处理 , 如处理手机号 , 身份证号等注意 : 敏感数据不适合AES加密 , 如登录密码 , 支付密码等java实现如下:public class AESUtil {//编码格式private static final String ENCODING = “UTF-8”;//加密算法public static final String KEY_ALGORITHM = “AES”;//签名算法public static f

2022-01-23 09:59:29 773

原创 java向前端传递id精度丢失问题

现象描述:后端向前端传递id , 发现精度丢失 , 后端与前端id不一致问题后端id为: 5498712456789456145前端接收id为: 5498712456789456000解决方案:1.将id类型改为String类型(不推荐)2.添加注解(推荐)@JsonSerialize(using = ToStringSerializer.class)private Long id;出现此现象的原因:前端接收数据类型为number类型 , 最大为16位 , 如果后端id大于16位 , 则

2022-01-23 09:37:24 2075

空空如也

空空如也

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

TA关注的人

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