3
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) {

Program Enkripsi Deskripsi pada file Upload Download

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

Page 1: Program Enkripsi Deskripsi pada file Upload Download

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) {

Page 2: Program Enkripsi Deskripsi pada file Upload Download

$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

Page 3: Program Enkripsi Deskripsi pada file Upload Download

} } }

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.