digest.php
2.69 KB
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/**
* Provides a form for calculating a digest.
* Usable as an include file or as a standalone page.
*
* @author Sam
*/
require_once "WEB-INF/php/inc.php";
display_header("digest.php", "Calculate a password digest", "");
$digest = NULL;
$validation_error = NULL;
$digest_password1 = NULL;
$digest_password2 = NULL;
$digest_attempt = $_REQUEST["digest_attempt"];
if (! empty($_REQUEST["digest_username"]))
if (! empty($digest_attempt)) {
$digest_username = htmlspecialchars($_REQUEST["digest_username"]);
$digest_password1 = $_REQUEST["digest_password1"];
$digest_password2 = $_REQUEST["digest_password2"];
$digest_realm = htmlspecialchars($_REQUEST["digest_realm"]);
if (! empty($digest_password1) || ! empty($digest_password2)) {
if ($digest_password1 !== $digest_password2)
$validation_error = "Passwords do not match";
else if (empty($digest_username))
$validation_error = "Username is required";
else {
$passwordDigest = new Java("com.caucho.server.security.PasswordDigest");
$digest = $passwordDigest->getPasswordDigest($digest_username, $digest_password1, $digest_realm);
}
}
else {
if (! empty($digest_username))
$validation_error = "Password is required";
}
}
if (empty($digest_realm))
$digest_realm = "resin";
?>
<?php
$show_form = true;
if (! empty($digest)) {
?>
<p>
The digest for user <b><i><?= $digest_username ?></i></b>
in realm <b><i><?= $digest_realm ?></i></b>
is <b><i><?= $digest ?></i></b>
</p>
<?php
if (basename($_SERVER['PHP_SELF']) !== "calculate-digest.php")
$show_form = false;
else
$digest_username = NULL;
}
if ($show_form) {
if (empty($validation_error) ) {
?>
<p>
Enter a Username and a Password and then calculate a digest.
A digest is the result of passing a password through a one way function,
it cannot be used to reverse-engineer the original password.
</p>
<?php
}
?>
<form method="post">
<table>
<?php
if (! empty($validation_error) ) {
?>
<tr><td colspan='2' class='error'><?= $validation_error ?></td></tr>
<?php
}
?>
<tr>
<th>Username:</th>
<td><input name="digest_username" size="50" value="<?= $digest_username ?>"></td>
</tr>
<tr>
<th>Password:</th>
<td><input name="digest_password1" type="password" size="50" value=""></td>
</tr>
<tr>
<th>Re-enter password:</th>
<td><input name="digest_password2" type="password" size="50" value=""></td>
</tr>
<tr>
<th>Realm:</th>
<td><input name="digest_realm" size="50" value="<?= $digest_realm ?>"></td>
</tr>
<tr><td colspan='2' class='buttons'><input type="submit" value="Calculate Digest"></td></tr>
</table>
<input name="digest_attempt" type="hidden" value="true">
</form>
<?php
}
?>
<?php
display_footer("digest.php");
?>