[WIP] Modul 5 oppgave 5
parent
49ea939196
commit
e91e508e6b
|
@ -0,0 +1 @@
|
|||
../modul1/index.php
|
|
@ -0,0 +1,78 @@
|
|||
<?php include '../common.php'; ?><!DOCTYPE html>
|
||||
<html lang="no">
|
||||
<head>
|
||||
<title><?=title();?></title>
|
||||
<link rel="stylesheet" href="../index.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1><?=title();?></h1>
|
||||
<h4><?=getNavigation();?></h4>
|
||||
<h2>Kryptering</h2>
|
||||
|
||||
<?php
|
||||
$input = $_POST['input'] ?? 'standard påstand';
|
||||
$output = $_POST['output'] ?? '';
|
||||
|
||||
$randoms = "!#%&/()=?+*-:;";
|
||||
$asciiKoder = array(); // liste med 'godkjente' ascii koder som de kan rotere på.
|
||||
|
||||
function krypter($input): String {
|
||||
// Array med alle tegn i den insatte strengen.
|
||||
$karakterer = preg_split('//u', $input, null, PREG_SPLIT_NO_EMPTY);
|
||||
|
||||
// Flytte på alle karakterene med 2/3-deler.
|
||||
$karakterer = arrayMove($karakterer, 2/3);
|
||||
|
||||
// gjøre hvert tegn om til ascii-tall med mb_ord
|
||||
// forskyve tallene til +30 per $asciiKoder
|
||||
// sette inn tilfeldige random-tegn annenhvert tegn
|
||||
|
||||
foreach ($karakterer as &$tegn){
|
||||
// echo $tegn.": ".mb_ord($tegn)."<br>\n";
|
||||
$tegn = mb_ord($tegn);
|
||||
|
||||
}
|
||||
unset($tegn);
|
||||
|
||||
return implode($karakterer);
|
||||
}
|
||||
|
||||
function dekrypter($input): string {
|
||||
// Array med alle tegn i den insatte strengen.
|
||||
$karakterer = preg_split('//u', $input, null, PREG_SPLIT_NO_EMPTY);
|
||||
|
||||
$karakterer = arrayMove($karakterer, 1/3);
|
||||
|
||||
return $input;
|
||||
}
|
||||
|
||||
// Rotere nøklene på en array med en satt forskyvning.
|
||||
function arrayMove($array, $forskyvning = 2/3): array {
|
||||
$len = count($array);
|
||||
$start = round($len*$forskyvning);
|
||||
$ut = array();
|
||||
|
||||
foreach ($array as $value){
|
||||
$ut[$start] = $value;
|
||||
|
||||
$start++;
|
||||
if($start>=$len){
|
||||
$start = 0;
|
||||
}
|
||||
}
|
||||
|
||||
ksort($ut);
|
||||
|
||||
return $ut;
|
||||
}
|
||||
|
||||
echo "<p>Ukryptert: <textarea>".$input."</textarea></p>";
|
||||
echo "<p>Kryptert: <textarea>".krypter($input)."</textarea></p>";
|
||||
|
||||
?>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue