From de4e5a7ad0962e5aca3770ae9f8c3c4bf779977f Mon Sep 17 00:00:00 2001
From: Paul Rivallin <99149335+Roronoatii@users.noreply.github.com>
Date: Fri, 20 Dec 2024 06:45:39 +0100
Subject: [PATCH 1/4] Add databases cipher
add choice for databases encryption and handle multiple cipher methods for databases
---
.idea/libraries/bytedeco_javacv_platform.xml | 4 +-
databases.json | 3 +-
src/Classes/DatabasesManager.java | 58 ++++++++++++++--
src/Classes/Menu.java | 56 +++++++++++++--
src/Classes/SiteManager.java | 71 +++++++++++++++++---
src/Tests/assets/test_databases.json | 1 -
src/Tests/assets/test_sites.json | 3 -
7 files changed, 168 insertions(+), 28 deletions(-)
delete mode 100644 src/Tests/assets/test_sites.json
diff --git a/.idea/libraries/bytedeco_javacv_platform.xml b/.idea/libraries/bytedeco_javacv_platform.xml
index 9fa3834..53085a2 100644
--- a/.idea/libraries/bytedeco_javacv_platform.xml
+++ b/.idea/libraries/bytedeco_javacv_platform.xml
@@ -19,9 +19,9 @@
-
+
-
+
diff --git a/databases.json b/databases.json
index 3f862b5..3beee54 100644
--- a/databases.json
+++ b/databases.json
@@ -1,3 +1,4 @@
{
- "esffs": "e4aebaf0f1b173cdf19ae33a5539cc4e52990f37473f6f41623e1a3a346fa713"
+
+
}
\ No newline at end of file
diff --git a/src/Classes/DatabasesManager.java b/src/Classes/DatabasesManager.java
index 284d52f..64f5fde 100644
--- a/src/Classes/DatabasesManager.java
+++ b/src/Classes/DatabasesManager.java
@@ -14,34 +14,39 @@
public class DatabasesManager {
private final File databasesFile;
- private final Map databases;
- Sha256 sha256 = new Sha256();
+ private final Map databases;
+ private final Sha256 sha256 = new Sha256();
+
public DatabasesManager(File databasesFile) {
this.databasesFile = databasesFile;
this.databases = loadDatabases();
}
public boolean verifyDatabase(String dbName, String password) {
+ if (!databases.containsKey(dbName)) return false;
+ Database database = databases.get(dbName);
String hashedPassword = sha256.calculateHash(password);
- return databases.containsKey(dbName) && databases.get(dbName).equals(hashedPassword);
+ return database.getHashPassword().equals(hashedPassword);
}
- public void createDatabase(String dbName, String password) {
+ public void createDatabase(String dbName, String password, Map encryptionMap) {
if (databases.containsKey(dbName)) {
throw new IllegalArgumentException("Database already exists.");
}
String hashedPassword = sha256.calculateHash(password);
- databases.put(dbName, hashedPassword);
+ Database newDatabase = new Database(dbName, hashedPassword, encryptionMap);
+ databases.put(dbName, newDatabase);
saveDatabases();
}
- public Map loadDatabases() {
+ private Map loadDatabases() {
if (!databasesFile.exists()) return new HashMap<>();
try (FileReader reader = new FileReader(databasesFile)) {
Gson gson = new Gson();
- Type type = new TypeToken