- 博客(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关注的人