Prinsip utama chiper geser terletak pada penggeseran huruf dengan panjang tertentu, sesuai dengan kesepakatan antara beberapa orang yang saling berkomunikasi, dan panjang penggeseran itulah yang dikenal dengan “kunci”. Misalkan : seseorang ingin mengirimkan huruf “a” pada teman atau relasinya, maka pengirim menggeser “a” ke huruf selanjutnya sepanjang 6 satuan, dan menghasilkan huruf “g” yang demikian itu dinamakan dengan proses enkripsi. Kemudian, hasilnya dikirimkan ke relasinya.
Mendapat kiriman dari temannya, maka sesuai dengan kesepakatan kunci, si penerima mengubah kembali hurufnya dengan menggeser huruf “g” ke huruf sebelumnya sepanjang 6 satuan pula dan menghasilkan huruf “a” kembali yang dinamakan proses dekripsi.
Berikut adalah definisi matematis dari chiper geser :
Penjelasan simbol : |
Sebelumnya silakan buat terlebih dahulu form untuk input plaintext
if ($encrypt == "crypto") {
$len_plaintext = strlen($plaintext);
$shift = intval($shiftchiper);
$shift = $shift % 26;
for ($i = 0;$i < $len_plaintext; $i++) {
$avg = $plaintext[$i];
$ord_plaintext = ord($avg);
if (($ord_plaintext > 96) and ($ord_plaintext < 123)) {
$change = ($ord_plaintext + $shift) % 123;
if ($change < 97) {$change = $change + 97;}
$chr_plaintext = chr($change);
$result .= $chr_plaintext;
}
else {$result .= $avg;}
}
}
if ($decrypt == "crypto") {
$len_chipertext = strlen($chipertext);
$shift = intval($shiftchiper);
$shift = $shift % 26;
for ($i = 0;$i < $len_chipertext; $i++) {
$avg = $chipertext[$i];
$ord_chipertext = ord($avg);
if (($ord_chipertext > 96) and ($ord_chipertext < 123)) {
$change = ($ord_chipertext - $shift) % 123;
if ($change < 97) {$change = $change + 26;}
$chr_chipertext = chr($change);
$result1 .= $chr_chipertext;
}
else {$result1 .= $avg;}
}
}
$len_plaintext = strlen($plaintext);
$shift = intval($shiftchiper);
$shift = $shift % 26;
for ($i = 0;$i < $len_plaintext; $i++) {
$avg = $plaintext[$i];
$ord_plaintext = ord($avg);
if (($ord_plaintext > 96) and ($ord_plaintext < 123)) {
$change = ($ord_plaintext + $shift) % 123;
if ($change < 97) {$change = $change + 97;}
$chr_plaintext = chr($change);
$result .= $chr_plaintext;
}
else {$result .= $avg;}
}
}
if ($decrypt == "crypto") {
$len_chipertext = strlen($chipertext);
$shift = intval($shiftchiper);
$shift = $shift % 26;
for ($i = 0;$i < $len_chipertext; $i++) {
$avg = $chipertext[$i];
$ord_chipertext = ord($avg);
if (($ord_chipertext > 96) and ($ord_chipertext < 123)) {
$change = ($ord_chipertext - $shift) % 123;
if ($change < 97) {$change = $change + 26;}
$chr_chipertext = chr($change);
$result1 .= $chr_chipertext;
}
else {$result1 .= $avg;}
}
}
0 komentar:
Posting Komentar