class Krypte {
public static void main
(String [] args
) { int i = 12345;
String G
= secure
(k.
getBytes()); System.
out.
println("Encrypted: " + G
);
String U
= secure
(G.
getBytes()); System.
out.
println("Decrypted: " + U
); System.
out.
println("As an int: " + X
);
}
public static String secure
(byte[] 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] = (byte) (msg[i] ^ secret);
System.
out.
println("Byte after: " + msg
[i
]); }
}
}
Y2xhc3MgS3J5cHRlIHsKcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZyBbXSBhcmdzKSB7CiAgICBpbnQgaSA9IDEyMzQ1OwoKICAgIFN0cmluZyBrID0gSW50ZWdlci50b1N0cmluZyhpKTsKICAgIFN0cmluZyBHID0gc2VjdXJlKGsuZ2V0Qnl0ZXMoKSk7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVuY3J5cHRlZDogIiArIEcpOwoKICAgIFN0cmluZyBVID0gc2VjdXJlKEcuZ2V0Qnl0ZXMoKSk7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRlY3J5cHRlZDogIiArIFUpOwogICAgaW50IFggPSBJbnRlZ2VyLnBhcnNlSW50KFUpOwogICAgU3lzdGVtLm91dC5wcmludGxuKCJBcyBhbiBpbnQ6ICIgKyBYKTsKCn0KCnB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlY3VyZShieXRlW10gbXNnKSB7CiAgICAvLyBWYXJpYWJsZXMKICAgIGludCBvdXRMZW5ndGggPSBtc2cubGVuZ3RoOwogICAgYnl0ZSBzZWNyZXQgPSAoYnl0ZSkgMHhBQzsgLy8gc2FtZSBhcyAxMDEwMTEwMGIgKEtleSkKICAgIC8vIFhPUiBrcnlwdGVyaW5nCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG91dExlbmd0aDsgaSsrKSB7CiAgICAgICAgLy8gZW5jcnlwdGluZyBlYWNoIGJ5dGUgd2l0aCBYT1IgKF4pCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlIGJlZm9yZTogIiArIG1zZ1tpXSk7CiAgICAgICAgbXNnW2ldID0gKGJ5dGUpIChtc2dbaV0gXiBzZWNyZXQpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZSBhZnRlcjogIiArIG1zZ1tpXSk7CiAgICB9CiAgICByZXR1cm4gbmV3IFN0cmluZyhtc2cpOwp9Cn0=