for i in rangelenL: temp += strL[i]
ifi lenL-1: temp += ,
return temp def toDecself, P:
temp = [] for i in rangelenP:
temp.appendordP[i] return temp
def toASCIIself, string: string = self.toLIstring
temp = for e in string:
temp += chre return temp
hasil = isPrime100 printhasil
2. Bahasa C
2.1. Fungsi Pembangkit Kunci pada FormPembangkitKunci.cs
public void runPythonBangkitKunci{ ProcessStartInfo p = new ProcessStartInfo;
p.FileName = c:\\Python33\\python.exe; p.RedirectStandardOutput = true;
p.UseShellExecute = false; p.Arguments = c:\\skrip\\gate.py + bangkitKunci 0 0
x x; start the python program with two parameters try{
usingProcess exeProc = Process.Startp{ StreamReader s = exeProc.StandardOutput;
String output = s.ReadToEnd; string []r = output.Splitnew char[]{
}; textBoxKunciP.Text = r[0].ToString;
textBoxKunciQ.Text = r[1].ToString; textBoxKunciN.Text = r[2].ToString;
Universitas Sumatera Utara
} }
catch{ MessageBox.ShowGagal melakukan pembangkit
kunci., Kesalahan Proses Pembangkit Kunci, MessageBoxButtons.OK, MessageBoxIcon.Error;
} }
void ButtonGenerateClickobject sender, EventArgs e {
ifstring.IsNullOrWhiteSpacetextBoxKunciP.Text string.IsNullOrWhiteSpacetextBoxKunciQ.Text{
ifMessageBox.ShowKunci yang anda tulis sebelumnya akan terhapus. Yakin untuk melanjutkan?, Peringatan:
Pembangkitan Kunci, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning == DialogResult.OK{
runPythonBangkitKunci; }
} else{
runPythonBangkitKunci; }
}
2.2.Fungsi Cek Kunci pada FormPembangkitKunci.cs
void ButtonCekKunciClickobject sender, EventArgs e{ ifstring.IsNullOrWhiteSpacetextBoxKunciP.Text |
string.IsNullOrWhiteSpacetextBoxKunciQ.Text{ MessageBox.ShowPasangan kunci tidak boleh ada yang
kosong., Kesalahan Kunci, MessageBoxButtons.OK, MessageBoxIcon.Error;
Universitas Sumatera Utara
textBoxKunciN.Text = ; }
else ifstring.IsNullOrWhiteSpacetextBoxKunciP.Text string.IsNullOrWhiteSpacetextBoxKunciQ.Text{
string hasil = runPythonCekKunci; ifString.Equalshasil, T{
int a = int.ParsetextBoxKunciP.Text; int b = int.ParsetextBoxKunciQ.Text;
int c = ab; textBoxKunciN.Text = c.ToString;
} else{
MessageBox.ShowKunci tidak memenuhi syarat., Kesalahan Kunci, MessageBoxButtons.OK, MessageBoxIcon.Error;
textBoxKunciN.Text = ; }
} }
public string runPythonCekKunci{ string hasil;
int kunci1 = int.ParsetextBoxKunciP.Text; int kunci2 = int.ParsetextBoxKunciQ.Text;
ProcessStartInfo p = new ProcessStartInfo; p.FileName = c:\\Python33\\python.exe;
p.RedirectStandardOutput = true; p.UseShellExecute = false;
p.Arguments = c:\\skrip\\gate.py + cekKunci + kunci1 + + kunci2 + x x;
try{ usingProcess exeProc = Process.Startp{
Universitas Sumatera Utara
StreamReader s = exeProc.StandardOutput; String output = s.ReadToEnd;
string []r = output.Splitnew char[]{ }; hasil = r[0][0].ToString;
} }
catch{ MessageBox.ShowGagal dalam melakukan cek kunci.,
Kesalahan Cek Kunci, MessageBoxButtons.OK, MessageBoxIcon.Error;
hasil = ; }
return hasil; }
2.3.Fungsi Enkrip Pesan
void Button1EnkripsiClickobject sender, EventArgse
{
if string.IsNullOrWhiteSpacetextBox1plaintext.Text | stri
ng.IsNullOrWhiteSpacetextBox1keyotp.Text{ MessageBox.ShowKunci OTP atau Pesan tidak boleh
kosong., Kesalahan Dekripsi, MessageBoxButtons.OK, MessageBoxIcon.Error;
}else{
textBox2chiphertext.Text=; ambilplainteks
string plain=textBox1plaintext.Text; ambilpanjangplainteks
int panjangplain=textBox1plaintext.Text.Length;
ambilkunci string kunci=textBox1keyotp.Text;
ambilpanjangkunci
Universitas Sumatera Utara
int pk=kunci.Length;
string cipher=; cekpanjangkuncidgnplain
kunciotp= ;
ifpkpanjangplain{
contohkunci=abc plain:farid
kunciotp=abc kunciotp +=kunci;
string tempplain=Regex.Replaceplain, \s+, ; int pjgtempplain=tempplain.Length;
forint i = 0; ipanjangplain-pjgtempplain;i++{
kunciotp=abcfa
tempplain+= chartempplain[i];
} MessageBox.Showtempplain;
proses menyamakan kunci == plain perulangan sesuai kurangnya kunci
forint i = 0; ipanjangplain-pk;i++{
kunciotp=abcfa
kunciotp+= chartempplain[i];
}
}else{
kunciotp = kunci; }
DateTime startTime = DateTime.Now;
MessageBox.Showpanjang karakter : +panjangplain.ToString;
algoritma otp
forint i=0; ipanjangplain;i++{ cipher+=char plain[i] + kunciotp[i];
}
2.4. Program Enkripsi Kunci Pesan