forked from UnlegitDqrk/unlegitlibrary
- Converting to new repo
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Copyright (C) 2025 UnlegitDqrk - All Rights Reserved
|
||||
*
|
||||
* You are unauthorized to remove this copyright.
|
||||
* You have to give Credits to the Author in your project and link this GitHub site: https://github.com/UnlegitDqrk
|
||||
* See LICENSE-File if exists
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2024 UnlegitDqrk - All Rights Reserved
|
||||
*
|
||||
* You are unauthorized to remove this copyright.
|
||||
* You have to give Credits to the Author in your project and link this GitHub site: https://github.com/UnlegitDqrk
|
||||
* See LICENSE-File if exists
|
||||
*/
|
||||
|
||||
package dev.unlegitdqrk.unlegitlibrary.string;
|
||||
|
||||
import dev.unlegitdqrk.unlegitlibrary.utils.DefaultMethodsOverrider;
|
||||
|
||||
import javax.crypto.BadPaddingException;
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.IllegalBlockSizeException;
|
||||
import javax.crypto.NoSuchPaddingException;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Base64;
|
||||
|
||||
public class SimpleEncoderDecoder extends DefaultMethodsOverrider {
|
||||
|
||||
private static SecretKeySpec secretKey;
|
||||
private static byte[] keyByte;
|
||||
|
||||
private static void setKey(final EncoderDecoderKeys key) throws NoSuchAlgorithmException {
|
||||
keyByte = key.getKey().getBytes(StandardCharsets.UTF_8);
|
||||
MessageDigest sha = MessageDigest.getInstance("SHA-1");
|
||||
keyByte = sha.digest(keyByte);
|
||||
keyByte = Arrays.copyOf(keyByte, 16);
|
||||
secretKey = new SecretKeySpec(keyByte, "AES");
|
||||
}
|
||||
|
||||
public static String encrypt(final Object toEncrypt, final EncoderDecoderKeys key) throws NoSuchAlgorithmException, InvalidKeyException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException {
|
||||
setKey(key);
|
||||
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
|
||||
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
|
||||
|
||||
return Base64.getEncoder().encodeToString(cipher.doFinal(toEncrypt.toString().getBytes(StandardCharsets.UTF_8)));
|
||||
}
|
||||
|
||||
public static String decrypt(final Object toDecrypt, final EncoderDecoderKeys key) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
|
||||
setKey(key);
|
||||
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
|
||||
cipher.init(Cipher.DECRYPT_MODE, secretKey);
|
||||
|
||||
return new String(cipher.doFinal(Base64.getDecoder().decode(toDecrypt.toString())));
|
||||
}
|
||||
|
||||
public static class EncoderDecoderKeys {
|
||||
public static final EncoderDecoderKeys BIT_KEY_128 = new EncoderDecoderKeys("Bar12345Bar12345");
|
||||
public static final EncoderDecoderKeys DEC1632DDCL542 = new EncoderDecoderKeys("Dec1632DDCL542");
|
||||
public static final EncoderDecoderKeys SSSHHHHHHHHHHH = new EncoderDecoderKeys("ssshhhhhhhhhhh!!!!");
|
||||
|
||||
private final String key;
|
||||
|
||||
public EncoderDecoderKeys(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public final String getKey() {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user