-
Notifications
You must be signed in to change notification settings - Fork 0
/
penis.php
73 lines (59 loc) · 1.54 KB
/
penis.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
<?php
// for each byte
// convert the 0-255 value to 8=D~, where the value is 8x(count ='s) + count(~)'s
// byte -> penis:
// equals = floor(byte/8)
// tildes = byte%8
// penis -> bytes:
// byte = 8*equals + tildes
function bytesToPenis($bytes)
{
$output = "";
for($i=0; $i<strlen($bytes); $i++)
{
$byte = ord($bytes[$i]);
$equals = floor($byte/8);
$tildes = $byte%8;
$output .= "8";
$output .= str_repeat("=",$equals);
$output .= "D";
$output .= str_repeat("~",$tildes);
}
return $output;
}
function penisToBytes($penis)
{
$chars = split("8",$penis);
$output = "";
foreach($chars as $char)
{
if(strlen($char) > 0)
{
$parts = split("D",$char);
$equals = strlen($parts[0]);
$tildes = strlen($parts[1]);
$byteval = $equals*8 + $tildes;
$output .= chr($byteval);
}
}
return $output;
}
$input = "";
if(isset($_GET['output']))
{
$input = penisToBytes($_GET['output']);
}
$output = "";
if(isset($_GET['input']))
{
$output = bytesToPenis($_GET['input']);
}
?>
<form action='penis.php' method='get'>
Input plain text: <input type='text' name='input' value='<?php echo htmlspecialchars($input, ENT_QUOTES); ?>' />
<input type='submit' value='go' />
</form>
<form action='penis.php' method='get'>
Input Pe-N15-encoded data: <br><textarea type='text' name='output' rows=5 cols=40><?php echo $output; ?></textarea>
<br><input type='submit' value='go' />
</form>