README.md
Rendering markdown...
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.FileInputStream;
public class CryptoAES {
private static Cipher cipher = null;
private static Cipher getCypher() throws Exception {
if (cipher == null) {
cipher=Cipher.getInstance("AES/CBC/PKCS5PADDING");
cipher.init(2, new SecretKeySpec("B263DCA5FF46AD12C7C5ADB06DF2BC45".getBytes(StandardCharsets.UTF_8.name()), "AES"), new IvParameterSpec("EB4A46BCE1D40B9F"
.getBytes(StandardCharsets.UTF_8.name())));
}
return cipher;
}
public String decrypt(String encryptedString) throws Exception {
try {
byte[] original = getCypher().doFinal(Base64.getDecoder().decode(encryptedString));
return new String(original, StandardCharsets.UTF_8);
} catch (Exception e){
throw new Exception("Unable to load or read the source file for conversion", e);
}
}
static String convertStreamToString(java.io.InputStream is) {
if (is == null) {
return "";
}
java.util.Scanner s = new java.util.Scanner(is);
s.useDelimiter("\\A");
String streamString = s.hasNext() ? s.next() : "";
s.close();
return streamString;
}
public static void main(String[] args) throws Exception {
CryptoAES myCrypto = new CryptoAES();
FileInputStream fis = new FileInputStream("AAbot_b64_encrypted.txt");
String stringTooLong = convertStreamToString(fis);
System.out.printf("Decrypted Text: %s", myCrypto.decrypt(stringTooLong));
}
}