encrypt & decrypt
hoe kan ik met php redelijk veilig een script maken dat dit doet:
de gebruiker moet een sleutel kunnen maken b.v. RB6YP of zo.
en dan moet er een tekst gecodeert kunnen worden aan de hand van die sleutel.
en latter moet tekst weer terug gehaalt kunnen worden met de sleutel.
robbert
Gewijzigd op 01/01/1970 01:00:00 door Robbert
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
$sleutel = (isset ($_POST['sleutel'])) ? ($_POST['sleutel']) : ('ABCD');
$src = (isset ($_POST['src'])) ? ($_POST['src']) : ('Hallo allemaal! Alles goed?');
function encrypt ($sleutel, $src) {
$n = strlen ($src);
$m = strlen ($sleutel);
$index = 0;
$dst = array ();
for ($i = 0; $i < $n; $i++) {
for ($j = 0; $j < $m; $j++) {
$dst[$index] = ord ($sleutel{$j}) * ord ($src{$index});
$index++;
if ($index == $n) {
return implode (' ', $dst);
}
}
}
}
function decrypt ($sleutel, $dst) {
$m = strlen ($sleutel);
$i = 0;
$array = explode (' ', $dst);
$src = array ();
foreach ($array as $value) {
$src[] = chr ($value / ord ($sleutel{$i}));
$i++;
if ($i == $m) $i = 0;
}
return implode ('', $src);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$dst = encrypt ($sleutel, $src);
$org = decrypt ($sleutel, $dst);
}
?>
<html>
<head>
<title>Encrypt - Decrypt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>
<label for="sleutel">sleutel:</label>
<input id="sleutel" name="sleutel" type="text" value="<?php echo $sleutel; ?>">
</p>
<p>
<label for="src">source:</label>
<textarea id="src" name="src" rows="10" cols="80"><?php echo $src; ?></textarea>
</p>
<p>
<label for="dst">destiny:</label>
<textarea rows="10" cols="80"><?php
if (isset ($dst)) {
echo $dst;
}
?></textarea>
</p>
<p>
<label for="org">origineel:</label>
<textarea rows="10" cols="80"><?php
if (isset ($org)) {
echo $org;
}
?></textarea>
<input type="submit" value="encrypt!">
</p>
</form>
</body>
</html>
$sleutel = (isset ($_POST['sleutel'])) ? ($_POST['sleutel']) : ('ABCD');
$src = (isset ($_POST['src'])) ? ($_POST['src']) : ('Hallo allemaal! Alles goed?');
function encrypt ($sleutel, $src) {
$n = strlen ($src);
$m = strlen ($sleutel);
$index = 0;
$dst = array ();
for ($i = 0; $i < $n; $i++) {
for ($j = 0; $j < $m; $j++) {
$dst[$index] = ord ($sleutel{$j}) * ord ($src{$index});
$index++;
if ($index == $n) {
return implode (' ', $dst);
}
}
}
}
function decrypt ($sleutel, $dst) {
$m = strlen ($sleutel);
$i = 0;
$array = explode (' ', $dst);
$src = array ();
foreach ($array as $value) {
$src[] = chr ($value / ord ($sleutel{$i}));
$i++;
if ($i == $m) $i = 0;
}
return implode ('', $src);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$dst = encrypt ($sleutel, $src);
$org = decrypt ($sleutel, $dst);
}
?>
<html>
<head>
<title>Encrypt - Decrypt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>
<label for="sleutel">sleutel:</label>
<input id="sleutel" name="sleutel" type="text" value="<?php echo $sleutel; ?>">
</p>
<p>
<label for="src">source:</label>
<textarea id="src" name="src" rows="10" cols="80"><?php echo $src; ?></textarea>
</p>
<p>
<label for="dst">destiny:</label>
<textarea rows="10" cols="80"><?php
if (isset ($dst)) {
echo $dst;
}
?></textarea>
</p>
<p>
<label for="org">origineel:</label>
<textarea rows="10" cols="80"><?php
if (isset ($org)) {
echo $org;
}
?></textarea>
<input type="submit" value="encrypt!">
</p>
</form>
</body>
</html>
dankje wel
Graag gedaan, robbert.