import java.security.MessageDigest;
import java.util.Arrays;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class Main {
public static void main
(String [] args
) { try {
System.
out.
println("==Java=="); /*
System.out.println("plaintext: " + plaintext);
SecretKeySpec key = new SecretKeySpec(encryptionKey.getBytes("UTF-8"), "AES");
byte[] cipher = encrypt(plaintext, key);
System.out.print("cipher: ");
for (int i=0; i<cipher.length; i++)
System.out.print(new Integer(cipher[i])+" ");
System.out.println("");
String decrypted = decrypt(cipher, key);
System.out.println("decrypt: " + decrypted);
*/
//String decodedPass = getRealmDecryptionKey();
String passwordInpout
= "RecoActivityEditEmailActivityAdditive"; String password
= passwordInpout.
substring(0,
16); SecretKeySpec secretKeySpec = new SecretKeySpec(password.getBytes(), "AES");
byte[] encodedSecretKey = secretKeySpec.getEncoded();
System.
out.
println("AES Key = " + encodedSecretKey
);
e.printStackTrace();
}
}
}
CmltcG9ydCBqYXZhLnNlY3VyaXR5Lk1lc3NhZ2VEaWdlc3Q7CmltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOwppbXBvcnQgamF2YXguY3J5cHRvLktleUdlbmVyYXRvcjsKaW1wb3J0IGphdmF4LmNyeXB0by5TZWNyZXRLZXk7CmltcG9ydCBqYXZheC5jcnlwdG8uc3BlYy5TZWNyZXRLZXlTcGVjOwppbXBvcnQgamF2YXguY3J5cHRvLnNwZWMuSXZQYXJhbWV0ZXJTcGVjOwogCmltcG9ydCBqYXZheC5jcnlwdG8uQ2lwaGVyOwppbXBvcnQgamF2YXguY3J5cHRvLnNwZWMuSXZQYXJhbWV0ZXJTcGVjOwppbXBvcnQgamF2YXguY3J5cHRvLnNwZWMuU2VjcmV0S2V5U3BlYzsKaW1wb3J0IGphdmEudXRpbC5CYXNlNjQ7CiAKcHVibGljIGNsYXNzIE1haW4gewoKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgW10gYXJncykgewogICAgdHJ5IHsKICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9PUphdmE9PSIpOwogICAgICAvKgogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInBsYWludGV4dDogICAiICsgcGxhaW50ZXh0KTsKICAgICAgU2VjcmV0S2V5U3BlYyBrZXkgPSBuZXcgU2VjcmV0S2V5U3BlYyhlbmNyeXB0aW9uS2V5LmdldEJ5dGVzKCJVVEYtOCIpLCAiQUVTIik7CiAgICAgIGJ5dGVbXSBjaXBoZXIgPSBlbmNyeXB0KHBsYWludGV4dCwga2V5KTsKIAogICAgICBTeXN0ZW0ub3V0LnByaW50KCJjaXBoZXI6ICAiKTsKICAgICAgZm9yIChpbnQgaT0wOyBpPGNpcGhlci5sZW5ndGg7IGkrKykKICAgICAgICBTeXN0ZW0ub3V0LnByaW50KG5ldyBJbnRlZ2VyKGNpcGhlcltpXSkrIiAiKTsKICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIiKTsKIAogICAgICBTdHJpbmcgZGVjcnlwdGVkID0gZGVjcnlwdChjaXBoZXIsIGtleSk7CiAKICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkZWNyeXB0OiAiICsgZGVjcnlwdGVkKTsKICAgICAgKi8KICAgICAgCiAgICAgIC8vU3RyaW5nIGRlY29kZWRQYXNzID0gZ2V0UmVhbG1EZWNyeXB0aW9uS2V5KCk7CiAgICAgIFN0cmluZyBwYXNzd29yZElucG91dCA9ICJSZWNvQWN0aXZpdHlFZGl0RW1haWxBY3Rpdml0eUFkZGl0aXZlIjsKICAgICAgU3RyaW5nIHBhc3N3b3JkID0gcGFzc3dvcmRJbnBvdXQuc3Vic3RyaW5nKDAsIDE2KTsKICAgICAgU2VjcmV0S2V5U3BlYyBzZWNyZXRLZXlTcGVjID0gbmV3IFNlY3JldEtleVNwZWMocGFzc3dvcmQuZ2V0Qnl0ZXMoKSwgIkFFUyIpOwogICAgICBieXRlW10gZW5jb2RlZFNlY3JldEtleSA9IHNlY3JldEtleVNwZWMuZ2V0RW5jb2RlZCgpOwoJICBTeXN0ZW0ub3V0LnByaW50bG4oIkFFUyBLZXkgPSAiICsgZW5jb2RlZFNlY3JldEtleSk7CiAKICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICB9IAogIH0KICAKfQ==