From 39cd2fa7b844b0e3a8d62eda6af339db96939dc2 Mon Sep 17 00:00:00 2001 From: HypherionMC Date: Thu, 22 Jun 2023 22:15:42 +0200 Subject: [PATCH] Fix encryption key trying to load before it's present and more variation of key length --- .../sdlink/core/util/EncryptionUtil.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hypherionmc/sdlink/core/util/EncryptionUtil.java b/src/main/java/com/hypherionmc/sdlink/core/util/EncryptionUtil.java index 468b796..980b789 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/util/EncryptionUtil.java +++ b/src/main/java/com/hypherionmc/sdlink/core/util/EncryptionUtil.java @@ -6,6 +6,7 @@ package com.hypherionmc.sdlink.core.util; import com.hypherionmc.sdlink.core.discord.BotController; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; import org.jasypt.exceptions.EncryptionOperationNotPossibleException; @@ -46,9 +47,8 @@ public final class EncryptionUtil { File encKey = new File(storageDir.getAbsolutePath() + File.separator + "sdlink.enc"); if (!encKey.exists()) { FileUtils.writeStringToFile(encKey, getSaltString(), StandardCharsets.UTF_8); - } else { - encCode = FileUtils.readFileToString(encKey, StandardCharsets.UTF_8); } + encCode = FileUtils.readFileToString(encKey, StandardCharsets.UTF_8); } catch (Exception e) { BotController.INSTANCE.getLogger().error("Failed to initialize Encryption", e); } @@ -113,14 +113,7 @@ public final class EncryptionUtil { // Generate Random codes for encryption/decryption private String getSaltString() { - String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; - StringBuilder salt = new StringBuilder(); - Random rnd = new Random(); - while (salt.length() < 18) { - int index = (int) (rnd.nextFloat() * SALTCHARS.length()); - salt.append(SALTCHARS.charAt(index)); - } - return salt.toString(); + return RandomStringUtils.random(new Random().nextInt(40), true, true); } }