[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