首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

系列二、RuoYi前后端分离(登录密码加密&去除公钥)

后端 36.12KB 25 需要积分: 1
立即下载

资源介绍:

机关程序修改为例
package com.ruoyi.common.utils.sign; import org.apache.commons.codec.binary.Base64; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import javax.crypto.Cipher; import java.security.*; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; @Component public class RSAUtil { // Rsa 私钥 也可固定秘钥对 若依原写法(不安全) public static String privateKeys = ""; private static String publicKeyStr = ""; private static String privateKeyStr = ""; private static String myPublicKeyStr = ""; private static String myPrivateKeyStr = ""; private static final RSAKeyPair rsaKeyPair = new RSAKeyPair(); private static final MyRSAPublicKey myRSAPublicKey = new MyRSAPublicKey(); private static final MyRSAPrivateKey myRSAPrivateKey = new MyRSAPrivateKey(); /** * 私钥解密 * * @param text 待解密的文本 * @return 解密后的文本 */ public static String decryptByPrivateKey(String text) throws Exception { return decryptByPrivateKey(rsaKeyPair.getPrivateKey(), text); } /** * 私钥解密 * * @param privateKeyString 私钥 * @param text 待解密的文本 * @return 解密后的文本 */ public static String decryptByPrivateKey(String privateKeyString, String text) throws Exception { PKCS8EncodedKeySpec pkcs8EncodedKeySpec5 = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyString)); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec5); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] result = cipher.doFinal(Base64.decodeBase64(text)); return new String(result); } /** * 私钥解密 * * @param text 待解密的文本 * @return 解密后的文本 */ public static String myDecryptByPrivateKey(String text) throws Exception { return myDecryptByPrivateKey(myRSAPrivateKey.getPrivateKey(), text); } /** * 私钥解密 * * @param privateKeyString 私钥 * @param text 待解密的文本 * @return 解密后的文本 */ private static String myDecryptByPrivateKey(String privateKeyString, String text) throws Exception { PKCS8EncodedKeySpec pkcs8EncodedKeySpec5 = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyString)); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec5); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] result = cipher.doFinal(Base64.decodeBase64(text)); return new String(result); } /** * 公钥解密 * * @param publicKeyString 公钥 * @param text 待解密的信息 * @return 解密后的文本 */ public static String decryptByPublicKey(String publicKeyString, String text) throws Exception { X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(Base64.decodeBase64(publicKeyString)); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, publicKey); byte[] result = cipher.doFinal(Base64.decodeBase64(text)); return new String(result); } /** * 私钥加密 * * @param privateKeyString 私钥 * @param text 待加密的信息 * @return 加密后的文本 */ public static String encryptByPrivateKey(String privateKeyString, String text) throws Exception { PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyString)); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, privateKey); byte[] result = cipher.doFinal(text.getBytes()); return Base64.encodeBase64String(result); } /** * 公钥加密 * * @param publicKeyString 公钥 * @param text 待加密的文本 * @return 加密后的文本 */ public static String encryptByPublicKey(String publicKeyString, String text) throws Exception { X509EncodedKeySpec x509EncodedKeySpec2 = new X509EncodedKeySpec(Base64.decodeBase64(publicKeyString)); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec2); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] result = cipher.doFinal(text.getBytes()); return Base64.encodeBase64String(result); } public static MyRSAPublicKey generatePublicKey() { return myRSAPublicKey; } /** * 构建RSA密钥对 * * @return 生成后的公私钥信息 */ @Bean public void generateKeyPair() throws NoSuchAlgorithmException, NoSuchProviderException { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(1024); KeyPair keyPair = keyPairGenerator.generateKeyPair(); RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic(); RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate(); String publicKeyString = Base64.encodeBase64String(rsaPublicKey.getEncoded()); String privateKeyString = Base64.encodeBase64String(rsaPrivateKey.getEncoded()); rsaKeyPair.setPrivateKey(privateKeyString); rsaKeyPair.setPublicKey(publicKeyString); myRSAPublicKey.setPublicKey(publicKeyString); myRSAPrivateKey.setPrivateKey(privateKeyString); publicKeyStr = publicKeyString; privateKeyStr = privateKeyString; myPublicKeyStr = publicKeyString; myPrivateKeyStr = privateKeyString; } public static String getPublicKey() { return publicKeyStr; } public static String getPrivateKey() { return privateKeyStr; } public static String getMyPublicKeyStr() { return myPublicKeyStr; } public static String getMyPrivateKeyStr() { return myPrivateKeyStr; } public static RSAKeyPair rsaKeyPair() { return rsaKeyPair; } /** * RSA密钥-私钥对象 */ public static class RSAKeyPair { private String publicKey; private String privateKey; public void setPublicKey(String publicKey) { this.publicKey = publicKey; } public void setPrivateKey(String privateKey) { this.privateKey = privateKey; } public RSAKeyPair() { } public RSAKeyPair(String publicKey, String privateKey) { this.publicKey = publicKey; this.privateKey = privateKey; } public String getPublicKey() { return publicKey; } public String getPrivateKey() { return privateKey; } } /** * RSA密钥-公钥对象 */ public static class MyRSAPrivateKey { private String privateKey; public MyRSAPrivateKey() { } public MyRSAPrivateKey(String privateKey) {

资源文件列表:

RuoYI前后端分离版本密码加密(去除私钥)_机关国产化.zip 大约有49个文件
  1. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/
  2. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/
  3. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/
  4. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/api/
  5. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/api/login.js 1.06KB
  6. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/
  7. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/modules/
  8. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/modules/user.js 3.07KB
  9. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/utils/
  10. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/utils/jsencrypt.js 1.21KB
  11. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/views/
  12. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/views/system/
  13. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/views/system/user/
  14. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/views/system/user/profile/
  15. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/前端/src/store/views/system/user/profile/resetPwd.vue 2.88KB
  16. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/
  17. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/
  18. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/
  19. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/main/
  20. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/main/java/
  21. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/main/java/com/
  22. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/main/java/com/ruoyi/
  23. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/main/java/com/ruoyi/web/
  24. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/main/java/com/ruoyi/web/controller/
  25. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/
  26. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java 2.88KB
  27. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java 5.7KB
  28. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/
  29. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/src/
  30. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/src/main/
  31. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/src/main/java/
  32. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/src/main/java/com/
  33. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/src/main/java/com/ruoyi/
  34. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/src/main/java/com/ruoyi/common/
  35. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/src/main/java/com/ruoyi/common/utils/
  36. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/
  37. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/RSAUtil.java 8.86KB
  38. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/
  39. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/
  40. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/
  41. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/java/
  42. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/java/com/
  43. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/java/com/ruoyi/
  44. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/java/com/ruoyi/framework/
  45. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/java/com/ruoyi/framework/config/
  46. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java 6.29KB
  47. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/java/com/ruoyi/framework/web/
  48. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/
  49. RuoYI前后端分离版本密码加密(去除私钥)_机关国产化/后端/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java 7.14KB
0评论
提交 加载更多评论
其他资源 automatic-verilog-master.zip
automatic-verilog-master.zip
当数据到达文件目录时自动运行FME工作空间
本文涉及到的数据及FME模板
信息技术知识赛系统 JAVA+Vue.js+SpringBoot+MySQL
基于Vue.js和SpringBoot的信息技术知识赛系统,分为用户前台和管理后台,可以给管理员、老师、学生角色使用,包括在线学习模块、赛事论坛模块、公告信息模块、赛事报名模块和系统基础模块,项目编号T226。 项目录屏:https://www.bilibili.com/video/BV1EH4y1w7eW 启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR 项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844
药品食物服务平台 JAVA+Vue.js+SpringBoot+MySQL
基于Vue.js和SpringBoot的药品食物服务平台,分为用户前台和管理后台,可以给管理员、普通用户角色使用,包括药方管理莫看了、文章管理模块、中医翻译模块、用户管理模块和系统基础模块,项目编号T228。 项目录屏:https://www.bilibili.com/video/BV1TH4y1w7pb 启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR 项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844
药品食物服务平台 JAVA+Vue.js+SpringBoot+MySQL 药品食物服务平台 JAVA+Vue.js+SpringBoot+MySQL 药品食物服务平台 JAVA+Vue.js+SpringBoot+MySQL
spring、java、jsp、mysql、
MR网络购物中心由前台商品展示及销售、后台管理两部分组成。 前台商品展示及销售 该部分主要包括新品上市、特价商品、销售排行、购物车、会员管理、商品公告及订单查询、商品查询等。 后台管理 该部分主要对购物中心内的一些基础数据进行有效管理,包括商品管理、会员管理、订单管理、公告管理等。
鸿蒙自定义弹窗非置顶解决方案 - 子窗口显示Demo
鸿蒙自定义弹窗非置顶解决方案 - 子窗口显示Demo
2022年新高考省份试卷(新教材).zip
2022年新高考省份试卷(新教材).zip
ISO 26262-3-2018
ISO 26262是一套国际标准,专门针对道路车辆的电气和/或电子系统的功能安全。这套标准定义了汽车行业中安全相关的系统开发过程,包括需求、设计、实施、验证、确认和配置管理等方面。ISO 26262旨在通过确保这些系统的功能性安全,减少或消除由于电气和电子系统故障导致的事故风险。 2018年发布的ISO 26262更新版,ISO 26262-3,是该标准系列的第三部分。
ISO 26262-3-2018 ISO 26262-3-2018 ISO 26262-3-2018