class Krypte {
public static void main
(String [] args
) { int i = 12345;
System.
out.
println("Before: " + k
); String G
= secure
(k.
toCharArray()); System.
out.
println("Encrypted: " + G
);
String U
= secure
(G.
toCharArray()); System.
out.
println("Decrypted: " + U
); System.
out.
println("As an int: " + X
);
}
public static String secure
(char[] msg
) { // Variables
int outLength = msg.length;
byte secret = (byte) 0xAC; // same as 10101100b (Key)
// XOR kryptering
for (int i = 0; i < outLength; i++) {
// encrypting each byte with XOR (^)
System.
out.
println("Byte before: " + msg
[i
]); msg[i] = (char) (msg[i] ^ secret);
System.
out.
println("Byte after: " + msg
[i
]); }
}
}
Y2xhc3MgS3J5cHRlIHsKcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZyBbXSBhcmdzKSB7CiAgICBpbnQgaSA9IDEyMzQ1OwoKICAgIFN0cmluZyBrID0gSW50ZWdlci50b1N0cmluZyhpKTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQmVmb3JlOiAiICsgayk7ICAgIAogICAgU3RyaW5nIEcgPSBzZWN1cmUoay50b0NoYXJBcnJheSgpKTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW5jcnlwdGVkOiAiICsgRyk7CgogICAgU3RyaW5nIFUgPSBzZWN1cmUoRy50b0NoYXJBcnJheSgpKTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGVjcnlwdGVkOiAiICsgVSk7CiAgICBpbnQgWCA9IEludGVnZXIucGFyc2VJbnQoVSk7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkFzIGFuIGludDogIiArIFgpOwoKfQoKcHVibGljIHN0YXRpYyBTdHJpbmcgc2VjdXJlKGNoYXJbXSBtc2cpIHsKICAgIC8vIFZhcmlhYmxlcwogICAgaW50IG91dExlbmd0aCA9IG1zZy5sZW5ndGg7CiAgICBieXRlIHNlY3JldCA9IChieXRlKSAweEFDOyAvLyBzYW1lIGFzIDEwMTAxMTAwYiAoS2V5KQogICAgLy8gWE9SIGtyeXB0ZXJpbmcKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3V0TGVuZ3RoOyBpKyspIHsKICAgICAgICAvLyBlbmNyeXB0aW5nIGVhY2ggYnl0ZSB3aXRoIFhPUiAoXikKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGUgYmVmb3JlOiAiICsgbXNnW2ldKTsKICAgICAgICBtc2dbaV0gPSAoY2hhcikgKG1zZ1tpXSBeIHNlY3JldCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlIGFmdGVyOiAiICsgbXNnW2ldKTsKICAgIH0KICAgIHJldHVybiBuZXcgU3RyaW5nKG1zZyk7Cn0KfQ==