package domasna.zadaca;
import java.io.DataInputStream;
public class Main {
int key,choice,ascii=0,i,j,n,addascii;
char c;
String message
="",encrypted
=""; System.
out.
println("choose a option:"); System.
out.
println("1.Encipher"); System.
out.
println("2.Decipher"); choice
= Integer.
parseInt(din.
readLine()); switch(choice){
case 1:
{
System.
out.
println("Type the message you want to encipher: "); message = din.readLine();
n=message.length();
key = 12;
char[] msg = message.toCharArray();
for(i=0;i<n;i++)
{
ascii = (int) msg[i];
addascii = key + ascii;
c = (char) addascii;
encrypted = encrypted + c;
}
System.
out.
println("The enciphered message is: "+encrypted
); break;
}
case 2:
{
System.
out.
println("Type the message you want to decipher: "); encrypted = din.readLine();
n=encrypted.length();
System.
out.
println("Type the cipher key: "); key
= Integer.
parseInt(din.
readLine()); char[] msg = encrypted.toCharArray();
for(i=0;i<n;i++)
{
ascii = (int) msg[i];
addascii = ascii - key;
c = (char) addascii;
message = message + c;
}
System.
out.
println("Deciphered message is: "+message
); break;
}
}
}
}
cGFja2FnZSBkb21hc25hLnphZGFjYTsKaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOwpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXRocm93cyBFeGNlcHRpb24gewogICAgICAgIGludCBrZXksY2hvaWNlLGFzY2lpPTAsaSxqLG4sYWRkYXNjaWk7CiAgICAgICAgY2hhciBjOwogICAgICAgIFN0cmluZyBtZXNzYWdlPSIiLGVuY3J5cHRlZD0iIjsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNob29zZSBhIG9wdGlvbjoiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjEuRW5jaXBoZXIiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjIuRGVjaXBoZXIiKTsKICAgICAgICBEYXRhSW5wdXRTdHJlYW0gZGluID0gbmV3IERhdGFJbnB1dFN0cmVhbShTeXN0ZW0uaW4pOwogICAgICAgIGNob2ljZSA9IEludGVnZXIucGFyc2VJbnQoZGluLnJlYWRMaW5lKCkpOwogICAgICAgIHN3aXRjaChjaG9pY2UpewoKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlR5cGUgdGhlIG1lc3NhZ2UgeW91IHdhbnQgdG8gZW5jaXBoZXI6ICIpOwogICAgICAgICAgICAgICAgbWVzc2FnZSA9IGRpbi5yZWFkTGluZSgpOwogICAgICAgICAgICAgICAgbj1tZXNzYWdlLmxlbmd0aCgpOwogICAgICAgICAgICAgICAga2V5ID0gMTI7CiAgICAgICAgICAgICAgICBjaGFyW10gbXNnID0gbWVzc2FnZS50b0NoYXJBcnJheSgpOwogICAgICAgICAgICAgICAgZm9yKGk9MDtpPG47aSsrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGFzY2lpID0gKGludCkgbXNnW2ldOwogICAgICAgICAgICAgICAgICAgIGFkZGFzY2lpID0ga2V5ICsgYXNjaWk7CiAgICAgICAgICAgICAgICAgICAgYyA9IChjaGFyKSBhZGRhc2NpaTsKICAgICAgICAgICAgICAgICAgICBlbmNyeXB0ZWQgPSBlbmNyeXB0ZWQgKyBjOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgZW5jaXBoZXJlZCBtZXNzYWdlIGlzOiAiK2VuY3J5cHRlZCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVHlwZSB0aGUgbWVzc2FnZSB5b3Ugd2FudCB0byBkZWNpcGhlcjogIik7CiAgICAgICAgICAgICAgICBlbmNyeXB0ZWQgPSBkaW4ucmVhZExpbmUoKTsKICAgICAgICAgICAgICAgIG49ZW5jcnlwdGVkLmxlbmd0aCgpOwogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUeXBlIHRoZSBjaXBoZXIga2V5OiAiKTsKICAgICAgICAgICAgICAgIGtleSA9IEludGVnZXIucGFyc2VJbnQoZGluLnJlYWRMaW5lKCkpOwogICAgICAgICAgICAgICAgY2hhcltdIG1zZyA9IGVuY3J5cHRlZC50b0NoYXJBcnJheSgpOwogICAgICAgICAgICAgICAgZm9yKGk9MDtpPG47aSsrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGFzY2lpID0gKGludCkgbXNnW2ldOwogICAgICAgICAgICAgICAgICAgIGFkZGFzY2lpID0gYXNjaWkgLSBrZXk7CiAgICAgICAgICAgICAgICAgICAgYyA9IChjaGFyKSBhZGRhc2NpaTsKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZSArIGM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRlY2lwaGVyZWQgbWVzc2FnZSBpczogIittZXNzYWdlKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9