src/main/java/com/whyc/Application.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/PasswordResetService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/util/AESUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/util/RSAUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/Application.java
@@ -31,20 +31,6 @@ SpringApplication.run(Application.class,args); ApplicationContext applicationContext = SpringUtil.getApplicationContext(); PasswordResetService service = (PasswordResetService) applicationContext.getBean("passwordResetService"); //密码格式预读及手动确认 Scanner sc = new Scanner(System.in); System.out.println("请输入用做校验的用户名:"); String name = sc.nextLine(); Response response = service.preCheck(name); System.out.println("当前密码模式为:"+response.getMsg()+",密码为"+response.getData()); System.out.println("核查正确请输入y,不正确请输入n"); String flag = sc.nextLine(); if(!flag.toUpperCase().equals("Y")){ System.out.println("密码解析失败,终止程序"); System.exit(1); } //进行密码修改 service.passwordReset(); //密码格式重置 service.passwordReset(); src/main/java/com/whyc/service/PasswordResetService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.util.StringUtil; import com.whyc.dto.Response; import com.whyc.mapper.UserInfMapper; import com.whyc.pojo.UserInf; @@ -28,9 +29,7 @@ @Resource private UserInfMapper userInfMapper; private String encryptType = null; public Response<String> preCheck(String name) { /*public Response<String> preCheck(String name) { Response<String> response = new Response<>(); QueryWrapper<UserInf> queryWrapper = Wrappers.query(); queryWrapper.select("uSnId as SNId").eq("uName",name).last(" limit 1"); @@ -40,7 +39,7 @@ response.setData(password); response.setMsg(encryptType); return response; } }*/ @Transactional public void passwordReset(){ @@ -49,18 +48,11 @@ queryWrapper.select("uId as id","uSnId as SNId"); List<UserInf> userInfList = userInfMapper.selectList(queryWrapper); userInfList.stream().forEach(userInf->{ if(userInf.getId() == 0){ /*if(userInf.getId() == 0){ return; } }*/ //明文,需要判断获取 String password = null; String snId = userInf.getSNId(); switch (encryptType){ case "AES": password = AESUtil.desEncrypt(snId); break; case "Common": password = snId;break; case "RSA": password = RSAUtil.decrypt(snId,RSAUtil.getPrivateKey());break; default:break; } String password = parsePassword(userInf.getSNId()); password = password.trim(); //将明文RSA加密回写到uSnId和upassword String passwordRSA = RSAUtil.encrypt(password, RSAUtil.getPublicKey()); @@ -68,20 +60,17 @@ userInf.setPassword(passwordRSA); //userInfMapper.updateById(userInf); }); userInfMapper.updateBatch(userInfList); //userInfMapper.updateBatch(userInfList); } private String parsePassword(String passwordData){ //明文,需要判断获取 String password; password = AESUtil.desEncrypt(passwordData); encryptType = "AES"; if(password == null || !verifyPassword(password.trim())){ if(StringUtil.isEmpty(password) || !verifyPassword(password.trim())){ password = RSAUtil.decrypt(passwordData, RSAUtil.getPrivateKey()); encryptType = "RSA"; if(password == null || !verifyPassword(password.trim())){ if(StringUtil.isEmpty(password) || !verifyPassword(password.trim())){ password = passwordData; encryptType = "Common"; } } return password.trim(); src/main/java/com/whyc/util/AESUtil.java
@@ -179,4 +179,9 @@ } } public static void main(String[] args) { String h = desEncrypt("哈额"); System.out.println(h); } } src/main/java/com/whyc/util/RSAUtil.java
@@ -1,6 +1,7 @@ package com.whyc.util; import com.github.pagehelper.util.StringUtil; import org.apache.tomcat.util.codec.binary.Base64; import javax.crypto.Cipher; @@ -205,14 +206,16 @@ public static void main(String[] args) { try { String word = "123456"; String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCPpJ3j+SHQ69lqq+ShV7deA40Y+8rYra6rr4ReOJ+UE7ek8tsJJrcy1xMO1SophJdHXXwSNbZWhnJW9GlIq1Um6IplkwFc/AtyoeJDP3EJtUZgI5H6fSz0BPLFHn18C0Nxz1Br109U07DqQdMsarcBmKXYQw+2oZOz0KpA5b0FawIDAQAB"; String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAI+kneP5IdDr2Wqr5KFXt14DjRj7ytitrquvhF44n5QTt6Ty2wkmtzLXEw7VKimEl0ddfBI1tlaGclb0aUirVSboimWTAVz8C3Kh4kM/cQm1RmAjkfp9LPQE8sUefXwLQ3HPUGvXT1TTsOpB0yxqtwGYpdhDD7ahk7PQqkDlvQVrAgMBAAECgYA8ASdX4W2n6a4kKnRSleLqqg8aHazqAPvTinmAJqU65VW02SJ42yxyV3gFnTSErXfIfxviO3/U+0ruWiFVEwV5oDEh0dOd+HHGm4YzFXIRglMeRBgLuVJ+owzoVDwZstiIBa69DIjaJtmpSf5FjwxAth+gtCv3e11IXHraKN720QJBAMPMB1WtmpRGYHxWVYjKSL+RGw+h3gMQLk3exZjhmYRlXuqfVZ2Zol+NazDc59K5f+geMdJ0/X2kKnKLVjWzYHMCQQC7z1cFYswtLemxGfj+dwlVC01VL4pKa7HGHl/FAQ2UNYZY2d5hE/nXYbTpfI0gMowX926/aFpia7NbAUJO7WEpAkAyUFa+LJthaOhYazMVsK2bFKW4kabkcJ8Fga6TR73UaNxIPGOa2SUBmuylpM6ptuNoeYHiDBAr3ijOQIIJ0KuDAkBy9fPahCNe9F+73J4hhVPdDtIDdto7u7hSAX215XMeabUW5iXNXqDsSg6nbWolb0t50CemWoYZALwE1Lx1+7AhAkEAoZtFt+2skjAxHEqNUye4vKBqB2Ng/wmfitCfT34lXWQsxs4BGk/8eQMzkam9bcB7FcinolxHF/1UjsUYpI+AgA=="; //String word = "123456"; //String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCPpJ3j+SHQ69lqq+ShV7deA40Y+8rYra6rr4ReOJ+UE7ek8tsJJrcy1xMO1SophJdHXXwSNbZWhnJW9GlIq1Um6IplkwFc/AtyoeJDP3EJtUZgI5H6fSz0BPLFHn18C0Nxz1Br109U07DqQdMsarcBmKXYQw+2oZOz0KpA5b0FawIDAQAB"; //String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAI+kneP5IdDr2Wqr5KFXt14DjRj7ytitrquvhF44n5QTt6Ty2wkmtzLXEw7VKimEl0ddfBI1tlaGclb0aUirVSboimWTAVz8C3Kh4kM/cQm1RmAjkfp9LPQE8sUefXwLQ3HPUGvXT1TTsOpB0yxqtwGYpdhDD7ahk7PQqkDlvQVrAgMBAAECgYA8ASdX4W2n6a4kKnRSleLqqg8aHazqAPvTinmAJqU65VW02SJ42yxyV3gFnTSErXfIfxviO3/U+0ruWiFVEwV5oDEh0dOd+HHGm4YzFXIRglMeRBgLuVJ+owzoVDwZstiIBa69DIjaJtmpSf5FjwxAth+gtCv3e11IXHraKN720QJBAMPMB1WtmpRGYHxWVYjKSL+RGw+h3gMQLk3exZjhmYRlXuqfVZ2Zol+NazDc59K5f+geMdJ0/X2kKnKLVjWzYHMCQQC7z1cFYswtLemxGfj+dwlVC01VL4pKa7HGHl/FAQ2UNYZY2d5hE/nXYbTpfI0gMowX926/aFpia7NbAUJO7WEpAkAyUFa+LJthaOhYazMVsK2bFKW4kabkcJ8Fga6TR73UaNxIPGOa2SUBmuylpM6ptuNoeYHiDBAr3ijOQIIJ0KuDAkBy9fPahCNe9F+73J4hhVPdDtIDdto7u7hSAX215XMeabUW5iXNXqDsSg6nbWolb0t50CemWoYZALwE1Lx1+7AhAkEAoZtFt+2skjAxHEqNUye4vKBqB2Ng/wmfitCfT34lXWQsxs4BGk/8eQMzkam9bcB7FcinolxHF/1UjsUYpI+AgA=="; //List<String> keyPair = getKeyPair(); //String encryptWord = encrypt(word, getPublicKey(keyPair.get(0))); //System.out.println("加密后的字符串:"+encryptWord); String encryptWord = "T8JGNiTKjeGxsy1klDEP6sgEbRIVrbC6KJt06RTY+KuK27SFU+Ch6fCE4wDsJRjfm0mr5DiHb1DZUOtEG6g4gv8F+5S7hTRtoaQkSxCCmnY7NMQKmkMl71Yvr9grx1KOrFUZCCymfcJGv0Dat7DPF/cDebnPN6IHpx+CS9u5pXI="; //String encryptWord = "T8JGNiTKjeGxsy1klDEP6sgEbRIVrbC6KJt06RTY+KuK27SFU+Ch6fCE4wDsJRjfm0mr5DiHb1DZUOtEG6g4gv8F+5S7hTRtoaQkSxCCmnY7NMQKmkMl71Yvr9grx1KOrFUZCCymfcJGv0Dat7DPF/cDebnPN6IHpx+CS9u5pXI="; String encryptWord = "h"; String originWord = decrypt(encryptWord, getPrivateKey(privateKey)); System.out.println(StringUtil.isEmpty(originWord)); System.out.println("解密后的字符串:"+originWord); } catch (Exception e) { e.printStackTrace();