From 72e18bd906403b14cb73c5c128388b34e835256b Mon Sep 17 00:00:00 2001 From: YuanErya Date: Tue, 28 May 2024 09:26:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=96=87=E6=A1=A3=EF=BC=8C?= =?UTF-8?q?=E9=99=84AES=E5=AF=B9=E7=A7=B0=E5=8A=A0=E5=AF=86=E4=BB=8E?= =?UTF-8?q?=E5=AF=86=E7=A0=81->=E5=AF=86=E9=92=A5=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=AD=96=E7=95=A5=EF=BC=8C=E6=96=B9=E4=BE=BF=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E5=BC=80=E5=8F=91=E8=80=85=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sa-token-doc/up/password-secure.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sa-token-doc/up/password-secure.md b/sa-token-doc/up/password-secure.md index 9e22f04c..be901070 100644 --- a/sa-token-doc/up/password-secure.md +++ b/sa-token-doc/up/password-secure.md @@ -35,9 +35,24 @@ String text2 = SaSecureUtil.aesDecrypt(key, ciphertext); System.out.println("AES解密后:" + text2); ``` +附:内部密钥生成策略,方便其他开发语言对接 +```java + private static SecretKeySpec getSecretKey(final String password) throws NoSuchAlgorithmException { + KeyGenerator kg = KeyGenerator.getInstance("AES"); + //获取SHA1PRNG伪随机数生成器 + SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); + //将实际密码作为伪随机数生成器的种子 + random.setSeed(password.getBytes()); + //利用伪随机数生成器生成128位的密钥,能确保解密时生成的密钥的一致性 + kg.init(128, random); + SecretKey secretKey = kg.generateKey(); + return new SecretKeySpec(secretKey.getEncoded(), "AES"); + } +``` + ### 非对称加密 -RSA加密 +~~RSA加密(已过时)~~ ``` java // 定义私钥和公钥 String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAO+wmt01pwm9lHMdq7A8gkEigk0XKMfjv+4IjAFhWCSiTeP7dtlnceFJbkWxvbc7Qo3fCOpwmfcskwUc3VSgyiJkNJDs9ivPbvlt8IU2bZ+PBDxYxSCJFrgouVOpAr8ar/b6gNuYTi1vt3FkGtSjACFb002/68RKUTye8/tdcVilAgMBAAECgYA1COmrSqTUJeuD8Su9ChZ0HROhxR8T45PjMmbwIz7ilDsR1+E7R4VOKPZKW4Kz2VvnklMhtJqMs4MwXWunvxAaUFzQTTg2Fu/WU8Y9ha14OaWZABfChMZlpkmpJW9arKmI22ZuxCEsFGxghTiJQ3tK8npj5IZq5vk+6mFHQ6aJAQJBAPghz91Dpuj+0bOUfOUmzi22obWCBncAD/0CqCLnJlpfOoa9bOcXSusGuSPuKy5KiGyblHMgKI6bq7gcM2DWrGUCQQD3SkOcmia2s/6i7DUEzMKaB0bkkX4Ela/xrfV+A3GzTPv9bIBamu0VIHznuiZbeNeyw7sVo4/GTItq/zn2QJdBAkEA8xHsVoyXTVeShaDIWJKTFyT5dJ1TR++/udKIcuiNIap34tZdgGPI+EM1yoTduBM7YWlnGwA9urW0mj7F9e9WIQJAFjxqSfmeg40512KP/ed/lCQVXtYqU7U2BfBTg8pBfhLtEcOg4wTNTroGITwe2NjL5HovJ2n2sqkNXEio6Ji0QQJAFLW1Kt80qypMqot+mHhS+0KfdOpaKeMWMSR4Ij5VfE63WzETEeWAMQESxzhavN1WOTb3/p6icgcVbgPQBaWhGg==";