From 6ed87e66da76b2c0c7d0a444c33356ab02599849 Mon Sep 17 00:00:00 2001 From: mzc5649 <13027087095@163.com> Date: Thu, 15 Apr 2021 15:12:16 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90add=E3=80=91=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=BF=94=E5=9B=9ERSA=E7=A7=81=E9=92=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/LoginController.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/LoginController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/LoginController.java index d38f03af..9d5993b1 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/LoginController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/LoginController.java @@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.security.*; import java.util.*; /** @@ -118,7 +119,7 @@ public class LoginController { // 重试登录次数加一 retryCount++; if( retryCount == 1){ - redisUtil.set(RETRY_LOGIN_PREFIX + username,retryCount, 1000 * 60 * 30); + redisUtil.set(RETRY_LOGIN_PREFIX + username,retryCount, 60 * 30); }else { redisUtil.set(RETRY_LOGIN_PREFIX + username,retryCount,redisUtil.getExpire(RETRY_LOGIN_PREFIX + username)); } @@ -526,5 +527,33 @@ public class LoginController { } return Result.OK(); } - + /** + * 返回一个RSA公钥 + * @author 马志朝 + * @date 2021/4/15 15:01 + * @param + * @return com.jero.common.api.vo.Result + */ + public Result getRSAPublicKey(){ + KeyPairGenerator keyPairGenerator = null; + try { + keyPairGenerator = KeyPairGenerator.getInstance("RSA"); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + assert keyPairGenerator != null; + KeyPair keyPair = keyPairGenerator.generateKeyPair(); + // 得到私钥 + PrivateKey privateKey = keyPair.getPrivate(); + // 得到公钥 + PublicKey publicKey = keyPair.getPublic(); + //base64编码 + String privateKeyBase64 = Base64.getEncoder().encodeToString(privateKey.getEncoded()); + String publicKeyBase64 = Base64.getEncoder().encodeToString(publicKey.getEncoded()); + //存到redis key为公钥 value为私钥 + redisUtil.set(publicKeyBase64, privateKeyBase64, 60 * 60L); + Result result = new Result<>(); + result.setResult(publicKeyBase64); + return result; + } } \ No newline at end of file