import java.io.*;
import java.security.*;
import java.util.*;
import javax.crypto.*;
import javax.crypto.spec.*;
public class myAESIV {
private static SecretKeySpec mykey;
private static byte[] cipherkey;
{
try
{
byte[] IV;
setencryptionkey(mysecretkey);
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, mykey);
IV = cipherkey;
String x
= Base64.
getEncoder().
encodeToString(cipher.
doFinal(string1.
getBytes("UTF-8"))); return x;
}
return null;
}
public static void setencryptionkey
(String myKey
) {
try {
cipherkey = myKey.getBytes("UTF-8");
cipherkey = securehash.digest(cipherkey);
cipherkey
= Arrays.
copyOf(cipherkey,
16); mykey = new SecretKeySpec(cipherkey, "AES");
}
}
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEuc2VjdXJpdHkuKjsKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YXguY3J5cHRvLio7CmltcG9ydCBqYXZheC5jcnlwdG8uc3BlYy4qOwoKCnB1YmxpYyBjbGFzcyBteUFFU0lWIHsKCiAgICBwcml2YXRlIHN0YXRpYyBTZWNyZXRLZXlTcGVjIG15a2V5OwogICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIGNpcGhlcmtleTsKCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBteWVuY3J5cHRpb24oU3RyaW5nIHN0cmluZzEsIFN0cmluZyBteXNlY3JldGtleSkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CgkJCWJ5dGVbXSBJVjsKICAgICAgICAgICAgc2V0ZW5jcnlwdGlvbmtleShteXNlY3JldGtleSk7CiAgICAgICAgICAgIENpcGhlciBjaXBoZXIgPSBDaXBoZXIuZ2V0SW5zdGFuY2UoIkFFUyIpOwogICAgICAgICAgICBjaXBoZXIuaW5pdChDaXBoZXIuRU5DUllQVF9NT0RFLCBteWtleSk7CiAgICAgICAgICAgIElWID0gY2lwaGVya2V5OwogICAgICAgICAgICBTdHJpbmcgeCA9IEJhc2U2NC5nZXRFbmNvZGVyKCkuZW5jb2RlVG9TdHJpbmcoY2lwaGVyLmRvRmluYWwoc3RyaW5nMS5nZXRCeXRlcygiVVRGLTgiKSkpOwogICAgICAgICAgICByZXR1cm4geDsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKXt9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIHNldGVuY3J5cHRpb25rZXkoU3RyaW5nIG15S2V5KQogICAgewogICAgICAgIE1lc3NhZ2VEaWdlc3Qgc2VjdXJlaGFzaCA9IG51bGw7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY2lwaGVya2V5ID0gbXlLZXkuZ2V0Qnl0ZXMoIlVURi04Iik7CiAgICAgICAgICAgIHNlY3VyZWhhc2ggPSBNZXNzYWdlRGlnZXN0LmdldEluc3RhbmNlKCJTSEEtMSIpOwogICAgICAgICAgICBjaXBoZXJrZXkgPSBzZWN1cmVoYXNoLmRpZ2VzdChjaXBoZXJrZXkpOwogICAgICAgICAgICBjaXBoZXJrZXkgPSBBcnJheXMuY29weU9mKGNpcGhlcmtleSwgMTYpOwogICAgICAgICAgICBteWtleSA9IG5ldyBTZWNyZXRLZXlTcGVjKGNpcGhlcmtleSwgIkFFUyIpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CiAgICB9Cn0KCg==