Esempio n. 1
0
        $data[$i] = str_pad(decbin(ord($chiper[$i]) - 33), 8, "0", STR_PAD_LEFT);
        $kunci[$i] = str_pad(decbin(ord($key[$i])), 8, "0", STR_PAD_LEFT);
        //echo 'biner ciper ='.str_pad(decbin(ord($chiper[$i])-33), 8, "0", STR_PAD_LEFT).', biner kunci = '.str_pad(decbin(ord($key[$i])), 8, "0", STR_PAD_LEFT).' ';
        //opeasi xor
        for ($j = 0; $j < 8; $j++) {
            $hasil[$j] = ($data[$i][$j] + $kunci[$i][$j]) % 2;
        }
        $result[$i] = implode($hasil);
        //echo 'biner dekrip = '.$result[$i];
        $plain[$i] = chr(bindec($result[$i]));
        //echo ' '.ord($chiper[$i]).', key ='.ord($key[$i]).', hasil = '.bindec($result[$i]).'<br/>';
    }
    $plainText = implode($plain);
    return $plainText;
}
function normalize($dec)
{
    //return ($dec%94)+33;
    return $dec % 126 + 33;
    //return $dec+33;
}
function key_generator($plain)
{
    $n = strlen($plain);
    return substr(str_shuffle("abcdefghijklmnopqrstuvwxyz"), 0, $n);
}
echo 'kunci = ' . $key . '<br/>';
$chiper = vernam_enkripsi($plain, $key);
echo 'hasil chiper =' . $chiper . '<br/>';
echo 'hasil dekrip =' . vernam_dekripsi($chiper, $key);
Esempio n. 2
0
function vernam_dekripsi($chiper, $key)
{
    $n = strlen($chiper);
    for ($i = 0; $i < $n; $i++) {
        $data[$i] = str_pad(decbin(ord($chiper[$i]) - 33), 8, "0", STR_PAD_LEFT);
        $kunci[$i] = str_pad(decbin(ord($key[$i])), 8, "0", STR_PAD_LEFT);
        //echo 'biner ciper ='.str_pad(decbin(ord($chiper[$i])-33), 8, "0", STR_PAD_LEFT).', biner kunci = '.str_pad(decbin(ord($key[$i])), 8, "0", STR_PAD_LEFT).' ';
        //opeasi xor
        for ($j = 0; $j < 8; $j++) {
            $hasil[$j] = ($data[$i][$j] + $kunci[$i][$j]) % 2;
        }
        $result[$i] = implode($hasil);
        //echo 'biner dekrip = '.$result[$i];
        $plain[$i] = chr(bindec($result[$i]));
        //echo ' '.ord($chiper[$i]).', key ='.ord($key[$i]).', hasil = '.bindec($result[$i]).'<br/>';
    }
    $plainText = implode($plain);
    return $plainText;
}
// Mengubah ENTER atau NEW LINE menjadi SPASI
$chiper = preg_replace("/\n/", "", $_POST['chiper_text']);
$key = $_POST['key'];
$plain = vernam_dekripsi($chiper, $key);
// Menyimpan hasil dekripsi ke dalam file.txt
$fileName = gmdate("H-i-s-d-m-y", time() + 3600 * 7) . ".txt";
$file_dekripsi = fopen($fileName, "w") or die('Cannot save file:  ' . $fileName);
fwrite($file_dekripsi, $plain);
fclose($file_dekripsi);
//menyimpan file pada folder doc dengan nama tanggal
rename($fileName, "dekripsi/" . $fileName . "");
echo $plain;