初次提交

This commit is contained in:
2025-06-30 10:11:32 +08:00
commit f059c64d0e
1785 changed files with 258159 additions and 0 deletions

View File

@ -0,0 +1,34 @@
import com.ho.common.tools.util.AESEncryptUtil;
import lombok.extern.slf4j.Slf4j;
/**
* @author fancl
* @desc: AES 加解密demo
* @date 2022/11/15
*/
@Slf4j
public class AESTest {
public static void main(String[] args) {
String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuG6ZABNgLQCI9iVPDuJEb7xb5zR9UGKyKXshLuJFZxyNtaEzfpjSMqsshUYA1QpwUvkmZE0lcRE4F4QtZO9rDnH2PoW1FWRbjgg0+MKWOmZr9hSPKM/BIE+knTtTaj4/0TK7QwDd9q/QAIduC1hIyxIIkxfWx0gFuTnxui0waCwIDAQAB";
String privKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK4bpkAE2AtAIj2JU8O4kRvvFvnNH1QYrIpeyEu4kVnHI21oTN+mNIyqyyFRgDVCnBS+SZkTSVxETgXhC1k72sOcfY+hbUVZFuOCDT4wpY6Zmv2FI8oz8EgT6SdO1NqPj/RMrtDAN32r9AAh24LWEjLEgiTF9bHSAW5OfG6LTBoLAgMBAAECgYA614NfXYO6galQzMmvewAnxa0pLYbqABDIDvJ4jN8qzV+OyVI5v81AwTQ3hXjkBygC5rCu+FKxyS/pUr5oIQ90vbKvy+kozg9l0qWHfa8XrfC+E36CVuDrZYdZzl0C6J6BoNB9osJJ6HCnMA7kWLRRwU5VJBsK8CmgcJlfHNH60QJBAPz4rZgqgor69SonHG4xjRz+u4QkXIP8I+lorBSFEuUF03u22Kcxz7mcOq63m8K+oc22ql0g8QNrq6YPrEgpAPMCQQCwMUQcdZLWJrRbHp1ZA3jbt4vYg7xb1LklAM6Qmz1R9xVY0itDMtFRSTlVnrbTPZ+rldrkLUOzLJwKLHniIQiJAkEAmfeBMKwu6Af2T8GePDNMf+lKmBLJfEtqUBW1JogYB+yT2yhelORsWbwMu2plExKTyHD1H9l812ghAOFpKkJKoQJBAJ7lz2dbIXHAtib3FTCR0Q1WGujI5bZrwg19DM2dM1AYZUgVQq73xY5pWyu8V2VqzfUQ0Le3mracJJ2IPuOQpwECQF/b7Tv3auIHRaO9AD7xWIOCMYGlKhqeheMZb/mDRHedsdRvigiojDaaFbtnkvXlRbWlkOu5P5GNDpv7EuPbUs8=";
//AES加解密
//String aesKey = AESEncryptUtil.generateKeyAndIv();
//String iv = AESEncryptUtil.generateKeyAndIv();
String aesKey = "1111111111111111";
String iv = "2222222222222222";
log.info("aesKey: {} ,iv:{}" ,aesKey ,iv);
//先加密
String plainText = "666666";
log.info("原始内容: {}" ,plainText);
//String encryptData = AESEncryptUtil.encrypt(plainText, aesKey, iv);
String encryptData = "vJOd6iNHWO9eGUDOBkDQIA==";
log.info("加密后的密码: {}" ,encryptData);
//使用固定密钥解密
String decryptPss = AESEncryptUtil.decrypt(encryptData, aesKey, iv);
log.info("解密后的密码:{}" ,decryptPss);
}
}

View File

@ -0,0 +1,96 @@
import cn.hutool.core.convert.Convert;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* @author fancl
* @desc: 分块读取文件示例
* @date 2022/8/10
*/
@Slf4j
public class BlockReadDemo {
public static void main(String[] args) throws Exception {
//write();
String path = "D:/temp/3.txt";
//先获取文件字节大小
long fileTotalSize = getFileSize(path);
int pageSize = 10;
//根据总大小计算文件页数
int pageNum = (int)(fileTotalSize + pageSize -1)/pageSize;
log.info("总页数:" + pageNum);
//文件大于0时读取
if(fileTotalSize>0){
//循环读取
for(int current = 0; current<pageNum; current ++){
byte[] bytes = readBlock(path, current);
//字节数组转为字符串
String readStr = new String(bytes);
System.out.println("读取到:" + readStr);
//把字节数组转为hex
String hexStr = Convert.toHex(bytes);
System.out.println("hexStr:" + hexStr);
}
}
}
//获取文件大小
static long getFileSize(String path) {
try {
RandomAccessFile raf = new RandomAccessFile(path, "r");
long length = raf.length();
raf.close();
return length;
} catch (FileNotFoundException e) {
return 0;
}catch (IOException e){
log.error(e.getMessage());
}
return 0;
}
//按位置分块读取文件内容
static byte[] readBlock(String path, int pointer) throws Exception {
//RandomAccessFile raf = new RandomAccessFile("D:/temp/startBasedata.sh", "r");
//RandomAccessFile raf = new RandomAccessFile("D:/temp/2.txt", "r");
RandomAccessFile raf = new RandomAccessFile(path, "r");
long length = raf.length();
System.out.println("文件大小:" + length);
//设置指针的位置,每次有偏移
int perSize = 10;
raf.seek(pointer * perSize);
//每次读取10字节,这个应该改为参数配置
byte[] bytes = new byte[10];
int readSize = raf.read(bytes);
//如果没有读到10个字节需要做数组拷贝
//读取时判断是否还有剩余字节
if (readSize < perSize) {
byte[] copy = new byte[readSize];
System.arraycopy(bytes, 0, copy, 0, readSize);
raf.close();
return copy;
}
raf.close();
return bytes;
}
static void writeBlock(MultipartFile file) throws Exception {
File fileupload = new File("");
RandomAccessFile raf = new RandomAccessFile("D:\\t1.txt", "rw");
raf.writeBytes("Hello World!234344444444444444444333\r\n");
raf.writeBytes("3222222222222222222222222222");
//raf.writeBoolean(true);
//raf.writeInt(30);
//raf.writeDouble(3.56);
raf.close();
}
}

View File

@ -0,0 +1,24 @@
import cn.hutool.core.date.DateUtil;
import com.ho.common.tools.constant.CommonConstant;
/**
* @author fancl
* @desc:
* @date 2022/12/7
*/
public class DayTest {
public static void main(String[] args) {
String currentStartDay =null;
String currentEndDay=null;
String lastMonthStartDay;
String lastMonthEndDay;
String lastYearStartDay=null;
String lastYearEndDay=null;
String yearStr ="2022";
String currentDay="2022-11-05";
//月份所对应的时间对象
String lastMonthSameDay = DateUtil.format(DateUtil.offsetDay(DateUtil.parse(currentDay), -30), CommonConstant.DATE_YMD);
System.out.println();
}
}

View File

@ -0,0 +1,20 @@
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* @author fancl
* @desc:
* @date 2022/8/25
*/
@ToString
@Getter
@Setter
public class DemoDto {
String IocPut ;
public static void main(String[] args) {
System.out.println();
}
}

View File

@ -0,0 +1,42 @@
import com.ho.common.tools.util.AESEncryptUtil;
import com.ho.common.tools.util.RSAUtil;
import lombok.extern.slf4j.Slf4j;
/**
* @author fancl
* @desc:
* @date 2022/11/15
*/
@Slf4j
public class EncTest {
public static void main(String[] args) {
String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuG6ZABNgLQCI9iVPDuJEb7xb5zR9UGKyKXshLuJFZxyNtaEzfpjSMqsshUYA1QpwUvkmZE0lcRE4F4QtZO9rDnH2PoW1FWRbjgg0+MKWOmZr9hSPKM/BIE+knTtTaj4/0TK7QwDd9q/QAIduC1hIyxIIkxfWx0gFuTnxui0waCwIDAQAB";
String privKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK4bpkAE2AtAIj2JU8O4kRvvFvnNH1QYrIpeyEu4kVnHI21oTN+mNIyqyyFRgDVCnBS+SZkTSVxETgXhC1k72sOcfY+hbUVZFuOCDT4wpY6Zmv2FI8oz8EgT6SdO1NqPj/RMrtDAN32r9AAh24LWEjLEgiTF9bHSAW5OfG6LTBoLAgMBAAECgYA614NfXYO6galQzMmvewAnxa0pLYbqABDIDvJ4jN8qzV+OyVI5v81AwTQ3hXjkBygC5rCu+FKxyS/pUr5oIQ90vbKvy+kozg9l0qWHfa8XrfC+E36CVuDrZYdZzl0C6J6BoNB9osJJ6HCnMA7kWLRRwU5VJBsK8CmgcJlfHNH60QJBAPz4rZgqgor69SonHG4xjRz+u4QkXIP8I+lorBSFEuUF03u22Kcxz7mcOq63m8K+oc22ql0g8QNrq6YPrEgpAPMCQQCwMUQcdZLWJrRbHp1ZA3jbt4vYg7xb1LklAM6Qmz1R9xVY0itDMtFRSTlVnrbTPZ+rldrkLUOzLJwKLHniIQiJAkEAmfeBMKwu6Af2T8GePDNMf+lKmBLJfEtqUBW1JogYB+yT2yhelORsWbwMu2plExKTyHD1H9l812ghAOFpKkJKoQJBAJ7lz2dbIXHAtib3FTCR0Q1WGujI5bZrwg19DM2dM1AYZUgVQq73xY5pWyu8V2VqzfUQ0Le3mracJJ2IPuOQpwECQF/b7Tv3auIHRaO9AD7xWIOCMYGlKhqeheMZb/mDRHedsdRvigiojDaaFbtnkvXlRbWlkOu5P5GNDpv7EuPbUs8=";
//AES加解密
//String aesKey = AESEncryptUtil.generateKeyAndIv();
//String iv = AESEncryptUtil.generateKeyAndIv();
String aesKey = "1111111111111111";
String iv = "2222222222222222";
log.info("aesKey: {} ,iv:{}" ,aesKey ,iv);
//先加密
String plainText = "666666";
log.info("原始内容: {}" ,plainText);
String encryptData = AESEncryptUtil.encrypt(plainText, aesKey, iv);
log.info("密码加密后: {}" ,encryptData);
//对密钥加密
String aesKeyEnc = RSAUtil.encode(aesKey, publicKey);
String ivEnc = RSAUtil.encode(iv, publicKey);
log.info("aesKeyEnc: {}" ,aesKeyEnc );
log.info("ivEnc:{}", ivEnc );
//解密
//对密钥解密
String aesKeyPlain = RSAUtil.decode(aesKeyEnc, privKey);
String ivPlain = RSAUtil.decode(ivEnc, privKey);
log.info("解密后: aesKeyPlain:{}" ,aesKeyPlain);
log.info("解密后: ivPlain:{}" ,ivPlain);
String srcPlain = AESEncryptUtil.decrypt(encryptData, aesKeyPlain ,ivPlain);
log.info("解密后密码: {}" ,srcPlain);
}
}

View File

@ -0,0 +1,32 @@
import com.ho.common.tools.util.RSAUtil;
import lombok.extern.slf4j.Slf4j;
/**
* @author fancl
* @desc: AES 加解密demo
* @date 2022/11/15
*/
@Slf4j
public class RSATest {
public static void main(String[] args) {
String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuG6ZABNgLQCI9iVPDuJEb7xb5zR9UGKyKXshLuJFZxyNtaEzfpjSMqsshUYA1QpwUvkmZE0lcRE4F4QtZO9rDnH2PoW1FWRbjgg0+MKWOmZr9hSPKM/BIE+knTtTaj4/0TK7QwDd9q/QAIduC1hIyxIIkxfWx0gFuTnxui0waCwIDAQAB";
String privKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK4bpkAE2AtAIj2JU8O4kRvvFvnNH1QYrIpeyEu4kVnHI21oTN+mNIyqyyFRgDVCnBS+SZkTSVxETgXhC1k72sOcfY+hbUVZFuOCDT4wpY6Zmv2FI8oz8EgT6SdO1NqPj/RMrtDAN32r9AAh24LWEjLEgiTF9bHSAW5OfG6LTBoLAgMBAAECgYA614NfXYO6galQzMmvewAnxa0pLYbqABDIDvJ4jN8qzV+OyVI5v81AwTQ3hXjkBygC5rCu+FKxyS/pUr5oIQ90vbKvy+kozg9l0qWHfa8XrfC+E36CVuDrZYdZzl0C6J6BoNB9osJJ6HCnMA7kWLRRwU5VJBsK8CmgcJlfHNH60QJBAPz4rZgqgor69SonHG4xjRz+u4QkXIP8I+lorBSFEuUF03u22Kcxz7mcOq63m8K+oc22ql0g8QNrq6YPrEgpAPMCQQCwMUQcdZLWJrRbHp1ZA3jbt4vYg7xb1LklAM6Qmz1R9xVY0itDMtFRSTlVnrbTPZ+rldrkLUOzLJwKLHniIQiJAkEAmfeBMKwu6Af2T8GePDNMf+lKmBLJfEtqUBW1JogYB+yT2yhelORsWbwMu2plExKTyHD1H9l812ghAOFpKkJKoQJBAJ7lz2dbIXHAtib3FTCR0Q1WGujI5bZrwg19DM2dM1AYZUgVQq73xY5pWyu8V2VqzfUQ0Le3mracJJ2IPuOQpwECQF/b7Tv3auIHRaO9AD7xWIOCMYGlKhqeheMZb/mDRHedsdRvigiojDaaFbtnkvXlRbWlkOu5P5GNDpv7EuPbUs8=";
String aesKeyEnc = "oOk2Ib+ow/K105g8jGBkXZ3EYH1zmBO+keqM2m2nMpWeQEM838/brxS5LX8Knh3oxhkO/7Nv1Q3t8z8eCoYTNjYkxDevqfz7ZV4Mau5rJVMyfG5i3A9GHp4XjuFVnZYcO69rmFqiY7btZJ17NQG/tF3RJF0RgkEWi0bbpFBLNug=";
String ivEnc = "H8La8vX9louUX2B5RciVrvn2VTBLQAbmUKv++1mvwp+eF0MnQcFC7lI3GzIFGHDEEWlCjOEiIvGaeNmU80AL//Tnn2Rti5MgPwe0lHRMsBjLDtaL3H/GYtKeCYvluPeQDHHOwZWvjucEhQ9k/GWMQNZCVmL/Ve1zKxAANCf43yw=";
log.info("aesKeyEnc: {}" ,aesKeyEnc );
log.info("ivEnc:{}", ivEnc );
//解密
//对密钥解密
String aesKeyPlain = RSAUtil.decode(aesKeyEnc, privKey);
String ivPlain = RSAUtil.decode(ivEnc, privKey);
log.info("解密后: aesKeyPlain:{}" ,aesKeyPlain);
log.info("解密后: ivPlain:{}" ,ivPlain);
}
}

View File

@ -0,0 +1,57 @@
package com.ho.user;
import com.ho.common.tools.entity.SysPermission;
import com.ho.user.api.entity.SysDept;
import com.ho.user.mapper.SysPermissionMapper;
import com.ho.user.service.DeptService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description TODO
* Author yule
* Date 2023/3/6 15:00
*/
@SpringBootTest
@RunWith(SpringRunner.class)
public class DeptTest {
@Autowired
DeptService deptService;
@Test
public void testDeptByPid(){
List<SysDept> depts = deptService.selectByGroupId(1);
Map<Integer,SysDept> map = new HashMap<>();
for (SysDept dept : depts) {
map.put(dept.getId(),dept);
}
for (SysDept dept : depts) {
int hierarchy = deptService.getHierarchy(map, dept, 1);
dept.setHierarchy(hierarchy);
}
System.out.println();
}
@Autowired
SysPermissionMapper sysPermissionMapper;
@Test
public void testAddPermissionMapper(){
SysPermission sysPermission = new SysPermission();
sysPermission.setName("111");
int i = sysPermissionMapper.insertSelective(sysPermission);
System.out.println(i);
System.out.println(sysPermission.getId());
}
}