Upload
putri-petri
View
622
Download
3
Embed Size (px)
DESCRIPTION
Contoh sederhana membuat program enkripsi deskripsi yang diaplikasikan pada upload dan download file text.Sehingga ketika memasukkan suatu file, file tersebut akan otomatis dienkripsi.
Citation preview
Program Enkripsi Deskripsi dengan Vigenere
<html><head> <title> EnkripsiDeskripsi_M3108041 </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<!--Kartika_M3108041-->
<body bgcolor="#FFFFFF"><h3 align="center">Program Enkripsi Deskripsi </font></h3>
<div align="center">
<table width="360" height="154" bgcolor="#dcdbde">
<form enctype="multipart/form-data" action="proses.php" method="post">
<tr><td>File Inputan </td><td>:</td><td> <input type="file" name="input"><br></td></tr>
<tr><td>Kunci</td><td>: </td><td> <input type="text" name="kunci"><br></td></tr>
<tr><td></td><td></td><td><input type="submit"value="Proses"/> <input type="Reset" name="Reset"
value="Reset" /> </td> </tr> <table width="100%" border="0"> <tr> <td>
<center>
<?php
class Vigenere {
//properties
private $msg=""; // variabel untuk kata
private $key=""; // variabel untuk kunci
private $eresult; // variabel untuk hasil enkripsi
private $dresult; // variabel untuk hasil dekripsi
//methods
public function __construct($pesan,$kunci) { // constructor pada kelas Vigenere
$this->msg = strtoupper($pesan); // membuat kata yang dimasukkan menjadi huruf besar semua
$this->eresult="";
$this->dresult="";
$upkunci= ord(strtoupper($kunci))-65; // merubah kunci menjadi bilangan ascii kemudian -65
if(($upkunci>=0) && ($upkunci<=25)) { // syarat bahwa kunci harus memiliki nilai diantara 0 dan 25
$this->key=strtoupper($kunci);
} else{
$this->key = -1;
$this->errMessage();
} }
public function __destruct() {
}
public function setMessage($pesan) {
$this->msg=$pesan; }
public function getMessage() {
return $this->msg; }
public function getKey() {
return $this->key; }
public function setKey($kunci) { // fungsi untuk mengeset kunci
$upkunci = ord(strtoupper($kunci))-65;
if(($upkunci>=0) && ($upkunci<=25)) { // syarat bahwa kunci harus memiliki nilai diantara 0 dan 25
$this->key = strtoupper($kunci);
} else {
$this->key = -1;
$this->errMessage();
} }
public function encryption() { // funsi enkripsi
if($this->key!=-1){
$vkey = ord($this->key)-65; // merubah kunci menjadi bilangan ascii kemudian - 65
for($j=1;$j<=strlen($this->msg);$j++){ // mengetahui panjang kata
if(ord($this->msg[$j-1])>=65 && ord($this->msg[$j-1])<=90){ //
//merubah dengan ord
$ord_msg[$j-1]=65+fmod(ord($this->msg[$j-1])-65+$vkey,26);
$this->eresult=$this->eresult.chr($ord_msg[$j-1]);
} else {
$ord_msg[$j-1]=ord($this->msg[$j-1]); // jika ascii dari kata tidak diantara 65 dan 90 maka tidak akan di enkripsi
$this->eresult=$this->eresult.chr($ord_msg[$j-1]); // merubah ascii menjadi karakter
} } }
return $this->eresult; }
public function decryption() {
if($this->key!=-1) {
$vkey = ord($this->key)-65; // merubah kunci menjadi bilangan ascii kemudian - 65
for($j=1;$j<=strlen($this->eresult);$j++) { // mengetahui panjang kata yang didapat dari hasil enkripsi
if(ord($this->eresult[$j-1])>=65 && ord($this->eresult[$j-1])<=90){
//merubah dalam ordinal
$ord_msg[$j-1]=65+fmod((ord($this->eresult[$j-1])-65)+26-$vkey,26);
$this->dresult=$this->dresult.chr($ord_msg[$j-1]);
} else{
$ord_msg[$j-1]=ord($this->eresult[$j-1]);
$this->dresult=$this->dresult.chr($ord_msg[$j-1]); // merubah ascii menjadi karakter
jika ascii dari kata tidak diantara 65 dan 90 maka tidak akan di
dekripsi
merubah hasil dekripsi yang masih bilangan ascii menjadi karakter
rumus dekripsi vigenere yaitu (26+c-k) mod26
karena hasilnya belum ascii maka ditambah 65
syarat agar yang di enkripsi hanya A-Z atau a-z
rumus enkripsi vigenere yaitu (m+k)mod26 karena
hasilnya belum ascii maka ditambah 65
merubah hasil enkripsi yang masih bilangan ascii
menjadi karakter
// syarat agar yang di deskripsi hanya A-Z atau a-z
} } }
return $this->dresult; }
private function errMessage() {
echo "<br /> Kunci yang dimasukkan salah"; } }
?> </form> </body></html>
Berikut hasil output dari syntag diatas:
Hasil download:
Dari output tersebut terlihat huruf,
karakter maupun spasi tidak berupa
symbol bila dienkripsikan ataupun
dideskripsikan.