From 5bdebcee047ae13c007da35125f0e73f6870ddd6 Mon Sep 17 00:00:00 2001 From: Mateo Date: Thu, 1 Aug 2024 15:51:18 +0200 Subject: [PATCH] Simplified elapsed time calculating --- .../usertwist/exploit/tools/Cesar.java | 50 +++++++++---------- .../usertwist/exploit/tools/Parser.java | 4 +- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/fr/motysten/usertwist/exploit/tools/Cesar.java b/src/fr/motysten/usertwist/exploit/tools/Cesar.java index fa66b4d..e11ccff 100644 --- a/src/fr/motysten/usertwist/exploit/tools/Cesar.java +++ b/src/fr/motysten/usertwist/exploit/tools/Cesar.java @@ -1,33 +1,33 @@ package fr.motysten.usertwist.exploit.tools; +import java.util.stream.Collectors; + public class Cesar { - public static final String LOWER_ALPHABET = "abcdefghijklmnopqrstuvwxyz"; - public static final String UPPER_ALPHABET = LOWER_ALPHABET.toUpperCase(); + public static String rotate(String input, int offset) { + char normalizeKey = (char) (offset % 26); - public static String cesarRotate(String input, int offset) { - - while (offset < 0) { - offset += 26; - } - - StringBuilder output = new StringBuilder(); - - for (int i = 0; i < input.length(); i++) { - char newChar = input.charAt(i); - if (!Character.isDigit(input.charAt(i))) { - int pos = LOWER_ALPHABET.indexOf(Character.toLowerCase(input.charAt(i))); - int newPos = (pos + offset) % 26; - if (Character.isUpperCase(input.charAt(i))) { - newChar = UPPER_ALPHABET.charAt(newPos); - } else { - newChar = LOWER_ALPHABET.charAt(newPos); - } - } - output.append(newChar); - } - - return output.toString(); + return input.chars() + .mapToObj(c -> (char) c) + .map(c -> { + if (Character.isLetter(c)) { + char base; + if (Character.isUpperCase(c)) { + base = 'A'; + } else { + base = 'a'; + } + if (offset < 0) { + return (char) (base + (c - base + normalizeKey) % 26); + } else { + return (char) (base + (c - base - normalizeKey + 26) % 26); + } + } else { + return c; + } + }) + .map(String::valueOf) + .collect(Collectors.joining()); } } diff --git a/src/fr/motysten/usertwist/exploit/tools/Parser.java b/src/fr/motysten/usertwist/exploit/tools/Parser.java index 739d7a3..2ce115f 100644 --- a/src/fr/motysten/usertwist/exploit/tools/Parser.java +++ b/src/fr/motysten/usertwist/exploit/tools/Parser.java @@ -9,7 +9,7 @@ public class Parser { for (int i = 0; i < usersArray.length(); i++) { JSONObject user = usersArray.getJSONObject(i); String login = user.getString("username"); - String password = Cesar.cesarRotate(user.getString("data"), rotation); + String password = Cesar.rotate(user.getString("data"), rotation); System.out.println((i + 1) + ". " + login + " => " + password); } @@ -23,7 +23,7 @@ public class Parser { new Thread(() -> { JSONObject user = usersArray.getJSONObject(finalI); String login = user.getString("username"); - String password = Cesar.cesarRotate(user.getString("data"), rotation); + String password = Cesar.rotate(user.getString("data"), rotation); System.out.println((finalI + 1) + ". " + login + " => " + password); }).start();