mirror of
https://github.com/ethauvin/rife2.git
synced 2025-05-01 02:58:12 -07:00
Exposed hex conversion methods from StringUtils
This commit is contained in:
parent
e447291be9
commit
c61685cff9
2 changed files with 84 additions and 70 deletions
|
@ -586,14 +586,21 @@ public final class StringUtils {
|
||||||
return UNRESERVED_URI_CHARS.get(ch);
|
return UNRESERVED_URI_CHARS.get(ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void appendUrlEncodedDigit(StringBuilder out, int digit) {
|
/**
|
||||||
out.append(HEX_DIGITS[digit & 0x0F]);
|
* Appends the hexadecimal digit of the provided number.
|
||||||
|
*
|
||||||
|
* @param out the string builder to append to
|
||||||
|
* @param number the number who's first digit will be appended in hexadecimal
|
||||||
|
* @since 1.0
|
||||||
|
*/
|
||||||
|
public static void appendHexDigit(StringBuilder out, int number) {
|
||||||
|
out.append(HEX_DIGITS[number & 0x0F]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void appendUrlEncodedByte(StringBuilder out, int ch) {
|
private static void appendUrlEncodedByte(StringBuilder out, int ch) {
|
||||||
out.append("%");
|
out.append("%");
|
||||||
appendUrlEncodedDigit(out, ch >> 4);
|
appendHexDigit(out, ch >> 4);
|
||||||
appendUrlEncodedDigit(out, ch);
|
appendHexDigit(out, ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1155,13 +1162,20 @@ public final class StringUtils {
|
||||||
return buffer.toString();
|
return buffer.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates a hexadecimal string for the provided byte array.
|
||||||
|
*
|
||||||
|
* @param bytes the byte array to convert to a hex string
|
||||||
|
* @return the converted hexadecimal string
|
||||||
|
* @since 1.0
|
||||||
|
*/
|
||||||
public static String encodeHex(byte[] bytes) {
|
public static String encodeHex(byte[] bytes) {
|
||||||
var sb = new StringBuilder();
|
var out = new StringBuilder();
|
||||||
for (byte b : bytes) {
|
for (byte b : bytes) {
|
||||||
sb.append(Integer.toHexString((b & 0xFF) | 0x100), 1, 3);
|
appendHexDigit(out, b >> 4);
|
||||||
|
appendHexDigit(out, b);
|
||||||
}
|
}
|
||||||
return sb.toString();
|
return out.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -13,15 +13,15 @@ import static org.junit.jupiter.api.Assertions.*;
|
||||||
public class TestStringEncryptor {
|
public class TestStringEncryptor {
|
||||||
@Test
|
@Test
|
||||||
void testAdaptiveEncrypt() {
|
void testAdaptiveEncrypt() {
|
||||||
String encrypted_value_sha = "SHA:Hw/gszrpwzs0GnKTaKbwetEqBb0=";
|
var encrypted_value_sha = "SHA:Hw/gszrpwzs0GnKTaKbwetEqBb0=";
|
||||||
String encrypted_value_shahex = "SHAHEX:1f0fe0b33ae9c33b341a729368a6f07ad12a05bd";
|
var encrypted_value_shahex = "SHAHEX:1F0FE0B33AE9C33B341A729368A6F07AD12A05BD";
|
||||||
String encrypted_value_md5 = "MD5:JZ3Y+j2LYEvTmtYRY1Khsw==";
|
var encrypted_value_md5 = "MD5:JZ3Y+j2LYEvTmtYRY1Khsw==";
|
||||||
String encrypted_value_md5hex = "MD5HEX:259dd8fa3d8b604bd39ad6116352a1b3";
|
var encrypted_value_md5hex = "MD5HEX:259DD8FA3D8B604BD39AD6116352A1B3";
|
||||||
String encrypted_value_obf = "OBF:1w261wtu1ugo1vo41vmy1uh21wuk1w1c";
|
var encrypted_value_obf = "OBF:1w261wtu1ugo1vo41vmy1uh21wuk1w1c";
|
||||||
String encrypted_value_wrp = "WRP:XRadzcqykoN26sWuGe0j85TRoOaErinQr0+QKWsy1hlTMJdtRMkLUo+A4S/Wr3xcj+Va6jc0XLGfcWusuNMrcg==";
|
var encrypted_value_wrp = "WRP:XRadzcqykoN26sWuGe0j85TRoOaErinQr0+QKWsy1hlTMJdtRMkLUo+A4S/Wr3xcj+Va6jc0XLGfcWusuNMrcg==";
|
||||||
String encrypted_value_wrphex = "WRPHEX:5d169dcdcab2928376eac5ae19ed23f394d1a0e684ae29d0af4f90296b32d6195330976d44c90b528f80e12fd6af7c5c8fe55aea37345cb19f716bacb8d32b72";
|
var encrypted_value_wrphex = "WRPHEX:5D169DCDCAB2928376EAC5AE19ED23F394D1A0E684AE29D0AF4F90296B32D6195330976D44C90B528F80E12FD6AF7C5C8FE55AEA37345CB19F716BACB8D32B72";
|
||||||
String encrypted_value_none = "thevalue";
|
var encrypted_value_none = "thevalue";
|
||||||
String value = "thevalue";
|
var value = "thevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
assertEquals(encrypted_value_sha, StringEncryptor.adaptiveEncrypt(value, "SHA:123"));
|
assertEquals(encrypted_value_sha, StringEncryptor.adaptiveEncrypt(value, "SHA:123"));
|
||||||
|
@ -39,14 +39,14 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testEncryptorInstance() {
|
void testEncryptorInstance() {
|
||||||
String encrypted_value_sha = "SHA:Hw/gszrpwzs0GnKTaKbwetEqBb0=";
|
var encrypted_value_sha = "SHA:Hw/gszrpwzs0GnKTaKbwetEqBb0=";
|
||||||
String encrypted_value_shahex = "SHAHEX:1f0fe0b33ae9c33b341a729368a6f07ad12a05bd";
|
var encrypted_value_shahex = "SHAHEX:1F0FE0B33AE9C33B341A729368A6F07AD12A05BD";
|
||||||
String encrypted_value_md5 = "MD5:JZ3Y+j2LYEvTmtYRY1Khsw==";
|
var encrypted_value_md5 = "MD5:JZ3Y+j2LYEvTmtYRY1Khsw==";
|
||||||
String encrypted_value_md5hex = "MD5HEX:259dd8fa3d8b604bd39ad6116352a1b3";
|
var encrypted_value_md5hex = "MD5HEX:259DD8FA3D8B604BD39AD6116352A1B3";
|
||||||
String encrypted_value_obf = "OBF:1w261wtu1ugo1vo41vmy1uh21wuk1w1c";
|
var encrypted_value_obf = "OBF:1w261wtu1ugo1vo41vmy1uh21wuk1w1c";
|
||||||
String encrypted_value_wrp = "WRP:XRadzcqykoN26sWuGe0j85TRoOaErinQr0+QKWsy1hlTMJdtRMkLUo+A4S/Wr3xcj+Va6jc0XLGfcWusuNMrcg==";
|
var encrypted_value_wrp = "WRP:XRadzcqykoN26sWuGe0j85TRoOaErinQr0+QKWsy1hlTMJdtRMkLUo+A4S/Wr3xcj+Va6jc0XLGfcWusuNMrcg==";
|
||||||
String encrypted_value_wrphex = "WRPHEX:5d169dcdcab2928376eac5ae19ed23f394d1a0e684ae29d0af4f90296b32d6195330976d44c90b528f80e12fd6af7c5c8fe55aea37345cb19f716bacb8d32b72";
|
var encrypted_value_wrphex = "WRPHEX:5D169DCDCAB2928376EAC5AE19ED23F394D1A0E684AE29D0AF4F90296B32D6195330976D44C90B528F80E12FD6AF7C5C8FE55AEA37345CB19F716BACB8D32B72";
|
||||||
String value = "thevalue";
|
var value = "thevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
assertEquals(encrypted_value_sha, StringEncryptor.SHA.encrypt(value));
|
assertEquals(encrypted_value_sha, StringEncryptor.SHA.encrypt(value));
|
||||||
|
@ -64,14 +64,14 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetEncryptor() {
|
void testGetEncryptor() {
|
||||||
String encrypted_value_sha = "SHA:Hw/gszrpwzs0GnKTaKbwetEqBb0=";
|
var encrypted_value_sha = "SHA:Hw/gszrpwzs0GnKTaKbwetEqBb0=";
|
||||||
String encrypted_value_shahex = "SHAHEX:1f0fe0b33ae9c33b341a729368a6f07ad12a05bd";
|
var encrypted_value_shahex = "SHAHEX:1F0FE0B33AE9C33B341A729368A6F07AD12A05BD";
|
||||||
String encrypted_value_md5 = "MD5:JZ3Y+j2LYEvTmtYRY1Khsw==";
|
var encrypted_value_md5 = "MD5:JZ3Y+j2LYEvTmtYRY1Khsw==";
|
||||||
String encrypted_value_md5hex = "MD5HEX:259dd8fa3d8b604bd39ad6116352a1b3";
|
var encrypted_value_md5hex = "MD5HEX:259DD8FA3D8B604BD39AD6116352A1B3";
|
||||||
String encrypted_value_obf = "OBF:1w261wtu1ugo1vo41vmy1uh21wuk1w1c";
|
var encrypted_value_obf = "OBF:1w261wtu1ugo1vo41vmy1uh21wuk1w1c";
|
||||||
String encrypted_value_wrp = "WRP:XRadzcqykoN26sWuGe0j85TRoOaErinQr0+QKWsy1hlTMJdtRMkLUo+A4S/Wr3xcj+Va6jc0XLGfcWusuNMrcg==";
|
var encrypted_value_wrp = "WRP:XRadzcqykoN26sWuGe0j85TRoOaErinQr0+QKWsy1hlTMJdtRMkLUo+A4S/Wr3xcj+Va6jc0XLGfcWusuNMrcg==";
|
||||||
String encrypted_value_wrphex = "WRPHEX:5d169dcdcab2928376eac5ae19ed23f394d1a0e684ae29d0af4f90296b32d6195330976d44c90b528f80e12fd6af7c5c8fe55aea37345cb19f716bacb8d32b72";
|
var encrypted_value_wrphex = "WRPHEX:5D169DCDCAB2928376EAC5AE19ED23F394D1A0E684AE29D0AF4F90296B32D6195330976D44C90B528F80E12FD6AF7C5C8FE55AEA37345CB19F716BACB8D32B72";
|
||||||
String value = "thevalue";
|
var value = "thevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
assertEquals(encrypted_value_sha, StringEncryptor.getEncryptor(StringEncryptor.SHA.name()).encrypt(value));
|
assertEquals(encrypted_value_sha, StringEncryptor.getEncryptor(StringEncryptor.SHA.name()).encrypt(value));
|
||||||
|
@ -89,10 +89,10 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testEncryptPlain() {
|
void testEncryptPlain() {
|
||||||
String value = "somevalue";
|
var value = "somevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String encrypted = StringEncryptor.autoEncrypt(value);
|
var encrypted = StringEncryptor.autoEncrypt(value);
|
||||||
assertEquals(encrypted, value);
|
assertEquals(encrypted, value);
|
||||||
assertTrue(StringEncryptor.matches(value, encrypted));
|
assertTrue(StringEncryptor.matches(value, encrypted));
|
||||||
} catch (NoSuchAlgorithmException e) {
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
@ -102,13 +102,13 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testEncryptOBF() {
|
void testEncryptOBF() {
|
||||||
String value = "somevalue";
|
var value = "somevalue";
|
||||||
String value2 = "somevalue";
|
var value2 = "somevalue";
|
||||||
String value3 = "somevalue2";
|
var value3 = "somevalue2";
|
||||||
String value4 = "SHA:somevalue";
|
var value4 = "SHA:somevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String encrypted = StringEncryptor.autoEncrypt("OBF:" + value);
|
var encrypted = StringEncryptor.autoEncrypt("OBF:" + value);
|
||||||
assertTrue(StringEncryptor.matches(value2, encrypted));
|
assertTrue(StringEncryptor.matches(value2, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value3, encrypted));
|
assertFalse(StringEncryptor.matches(value3, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value4, encrypted));
|
assertFalse(StringEncryptor.matches(value4, encrypted));
|
||||||
|
@ -121,13 +121,13 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testEncryptMD5() {
|
void testEncryptMD5() {
|
||||||
String value = "MD5:somevalue";
|
var value = "MD5:somevalue";
|
||||||
String value2 = "somevalue";
|
var value2 = "somevalue";
|
||||||
String value3 = "somevalue2";
|
var value3 = "somevalue2";
|
||||||
String value4 = "SHA:somevalue";
|
var value4 = "SHA:somevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String encrypted = StringEncryptor.autoEncrypt(value);
|
var encrypted = StringEncryptor.autoEncrypt(value);
|
||||||
assertTrue(StringEncryptor.matches(value2, encrypted));
|
assertTrue(StringEncryptor.matches(value2, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value3, encrypted));
|
assertFalse(StringEncryptor.matches(value3, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value4, encrypted));
|
assertFalse(StringEncryptor.matches(value4, encrypted));
|
||||||
|
@ -138,13 +138,13 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testEncryptMD5HEX() {
|
void testEncryptMD5HEX() {
|
||||||
String value = "MD5HEX:somevalue";
|
var value = "MD5HEX:somevalue";
|
||||||
String value2 = "somevalue";
|
var value2 = "somevalue";
|
||||||
String value3 = "somevalue2";
|
var value3 = "somevalue2";
|
||||||
String value4 = "SHA:somevalue";
|
var value4 = "SHA:somevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String encrypted = StringEncryptor.autoEncrypt(value);
|
var encrypted = StringEncryptor.autoEncrypt(value);
|
||||||
assertTrue(StringEncryptor.matches(value2, encrypted));
|
assertTrue(StringEncryptor.matches(value2, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value3, encrypted));
|
assertFalse(StringEncryptor.matches(value3, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value4, encrypted));
|
assertFalse(StringEncryptor.matches(value4, encrypted));
|
||||||
|
@ -155,13 +155,13 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testEncryptSHA() {
|
void testEncryptSHA() {
|
||||||
String value = "SHA:somevalue";
|
var value = "SHA:somevalue";
|
||||||
String value2 = "somevalue";
|
var value2 = "somevalue";
|
||||||
String value3 = "somevalue2";
|
var value3 = "somevalue2";
|
||||||
String value4 = "MD5:somevalue";
|
var value4 = "MD5:somevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String encrypted = StringEncryptor.autoEncrypt(value);
|
var encrypted = StringEncryptor.autoEncrypt(value);
|
||||||
assertTrue(StringEncryptor.matches(value2, encrypted));
|
assertTrue(StringEncryptor.matches(value2, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value3, encrypted));
|
assertFalse(StringEncryptor.matches(value3, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value4, encrypted));
|
assertFalse(StringEncryptor.matches(value4, encrypted));
|
||||||
|
@ -172,13 +172,13 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testEncryptSHAHEX() {
|
void testEncryptSHAHEX() {
|
||||||
String value = "SHAHEX:somevalue";
|
var value = "SHAHEX:somevalue";
|
||||||
String value2 = "somevalue";
|
var value2 = "somevalue";
|
||||||
String value3 = "somevalue2";
|
var value3 = "somevalue2";
|
||||||
String value4 = "MD5HEX:somevalue";
|
var value4 = "MD5HEX:somevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String encrypted = StringEncryptor.autoEncrypt(value);
|
var encrypted = StringEncryptor.autoEncrypt(value);
|
||||||
assertTrue(StringEncryptor.matches(value2, encrypted));
|
assertTrue(StringEncryptor.matches(value2, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value3, encrypted));
|
assertFalse(StringEncryptor.matches(value3, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value4, encrypted));
|
assertFalse(StringEncryptor.matches(value4, encrypted));
|
||||||
|
@ -189,13 +189,13 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testEncryptWRP() {
|
void testEncryptWRP() {
|
||||||
String value = "WRP:somevalue";
|
var value = "WRP:somevalue";
|
||||||
String value2 = "somevalue";
|
var value2 = "somevalue";
|
||||||
String value3 = "somevalue2";
|
var value3 = "somevalue2";
|
||||||
String value4 = "MD5:somevalue";
|
var value4 = "MD5:somevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String encrypted = StringEncryptor.autoEncrypt(value);
|
var encrypted = StringEncryptor.autoEncrypt(value);
|
||||||
assertTrue(StringEncryptor.matches(value2, encrypted));
|
assertTrue(StringEncryptor.matches(value2, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value3, encrypted));
|
assertFalse(StringEncryptor.matches(value3, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value4, encrypted));
|
assertFalse(StringEncryptor.matches(value4, encrypted));
|
||||||
|
@ -206,13 +206,13 @@ public class TestStringEncryptor {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testEncryptWRPHEX() {
|
void testEncryptWRPHEX() {
|
||||||
String value = "WRPHEX:somevalue";
|
var value = "WRPHEX:somevalue";
|
||||||
String value2 = "somevalue";
|
var value2 = "somevalue";
|
||||||
String value3 = "somevalue2";
|
var value3 = "somevalue2";
|
||||||
String value4 = "MD5HEX:somevalue";
|
var value4 = "MD5HEX:somevalue";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String encrypted = StringEncryptor.autoEncrypt(value);
|
var encrypted = StringEncryptor.autoEncrypt(value);
|
||||||
assertTrue(StringEncryptor.matches(value2, encrypted));
|
assertTrue(StringEncryptor.matches(value2, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value3, encrypted));
|
assertFalse(StringEncryptor.matches(value3, encrypted));
|
||||||
assertFalse(StringEncryptor.matches(value4, encrypted));
|
assertFalse(StringEncryptor.matches(value4, encrypted));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue