LISTING PROGRAM
1. Module tppba.py
import random
import time
z=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q ','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7' ,'8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o', 'p','q','r','s','t','u','v','w','x','y','z','.',',','!','&','*','#',' ^','(','$','%',')','{','}','[',']','+','-','=','<','>','/',':', ';', '_', '?', '|', '`', '~', '\\', '@',' '] #93
lz = len(z)
def Lehmann(p):
trial = 10
for i in range (0, trial):
BilRand = random.randint(2, p - 1)
temp = (p - 1)//2
L = pow(BilRand, temp, p)
if ((L != 1) & (L - p != -1)):
return False
return True
def genPrime(x):
BilRand = random.randint(pow(10, x - 1), pow(10, x) - 1)
p = BilRand // 2 * 2 + 1
while not (Lehmann(p)):
BilRand = random.randint(pow(10, x - 1), pow(10, x) - 1)
p = BilRand // 2 * 2 + 1
def key(k):
ky = ""
for x in range(len(k)):
BilRand_Key = random.randint(10, 99)
temp = (z.index(k[x]) + BilRand_Key) % lz
ky = ky + z[temp]
return ky
def EnkBeaufort (Plainteks, kunci):
hasil1 = ""
for x in range(len(Plainteks)):
temp = (z.index(kunci[x]) - z.index(Plainteks[x])) % lz
hasil1 = hasil1 + z[temp]
return hasil1
def EnkAff(m, b, data):
hasil2 = ""
for x in range(len(data)):
temp = (m * z.index(data[x]) + b) % lz
hasil2 = hasil2 + z[temp]
return hasil2
def DekBeaufort (data, kunci):
hasil3 = ""
for x in range(len(data)):
temp = (z.index(kunci[x]) - z.index(data[x])) % lz
return hasil3
t0 = time.time()
def DekAff(m, b, data, data2):
hasil4 = ""
for x in range(len(data)):
temp = (z.index(data[x]) + (m - 1)* z.index(data2[x]) + b) % lz
hasil4 = hasil4 + z[temp]
return hasil4
def geser(y) :
b = random.randint(0, pow(10,y))
return b
def karakter(c):
kr = len(c)
return kr
def waktuAlgo(t0,t1):
tot_waktu = t1 - t0
return tot_waktu
2. Modul pintu.py
import sys
sys.path.append("d:\kode\program")
def pintu (fungsi):
if (fungsi == "BilPrima"):
from tppba import genPrime
hasil = genPrime(c)
print(hasil, end = '')
elif (fungsi == "shiff"):
import tppba
from tppba import geser
hasil1 = geser(c)
print(hasil1, end = '')
elif (fungsi == "EnkripBeaufort"):
import tppba
from tppba import EnkBeaufort
C1 = EnkBeaufort(d,e)
print(C1, end = '')
elif (fungsi == "EnkripAffine"):
import tppba
from tppba import EnkAff
C2 = EnkAff(b,c,d)
print(C2, end = '')
elif (fungsi == "DekripBeaufort"):
import tppba
from tppba import DekBeaufort
C3 = DekBeaufort(d,e)
print(C3, end = '')
elif (fungsi == "DekripAffine"):
import tppba
from tppba import DekAff
Pl = DekAff(b,c,d,e)
print(Pl, end = '')
elif (fungsi == "KunciBeau"):
from tppba import key
kunci = key(d)
print(kunci, end = '')
elif (fungsi == "HtgKarakter"):
import tppba
from tppba import karakter
kar = karakter(d)
print(kar, end = '')
global a
a = str(sys.argv[1])
global b
b = int(sys.argv[2])
global c
c = int(sys.argv[3])
global d
d = str(sys.argv[4])
global e
e = str(sys.argv[5])
3. Header pada SharpDevelop
4. Fungsi Membuka Directory File Teks (*.doc)
void Button1Click(object sender, EventArgs e)
5. Fungsi Membaca Directory File Teks (*.doc)
void ButtonBukaClick(object sender, EventArgs e) {
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
object filenameO = textBoxCari.Text.ToString();
= wordApp.Documents.Open(ref filenameO, ref objFalse, ref objTrue, r ef missing, ref missing, ref missing, ref missing, ref missing, ref m issing, ref missing, ref objTrue, ref missing, ref missing, ref missi ng, ref missing);
7. Fungsi Enkripsi Beaufort Cipher
8. Fungsi Dekripsi Beaufort Cipher
void ButtonDekBeauClick(object sender, EventArgs e) " + "DekripBeaufort 0 0 " + "\"" + Plainteks3 + "\"" + " " + "\"" + kunciBe + "\"";
using (Process runProses =Process.Start(p))
12.Fungsi Pergesesan Affine Cipher
void TextBoxEnkBeauTextChanged(object sender, EventArgs e) {
}
textBoxKunciBeau.Text = ""; textBoxEnkBeau.Text = ""; textBoxBilPrima.Text = ""; textBoxGeser.Text = ""; textBoxEnkAff.Text = ""; textBoxDekBeau.Text = ""; textBoxDekAff.Text = ""; textBoxKarakter.Text = ""; }