4 |
andreas |
1 |
<?php
|
|
|
2 |
function CreateCryptKey() {
|
|
|
3 |
// Angabe der Daten für den distinguished name, der in dem Zertifikat benutzt
|
|
|
4 |
// wird. Sie müssen die Werte dieser Schlüssel so anpassen, dass diese ihrem
|
|
|
5 |
// Namen und Firma entsprechen, oder um präziser zu sein, den Namen und die
|
|
|
6 |
// Firma der Person/Seite angeben, für die Sie das Zertifikat erzeugen.
|
|
|
7 |
// Für SSL Zertifikate entspricht der commonName gewöhnlich dem Domainnamen,
|
|
|
8 |
// für den das Zertifikat benutzt werden soll, aber bei S/MIME Zertifikaten
|
|
|
9 |
// entspricht der commonName dem Namen der Person, die das Zertifikat nutzen
|
|
|
10 |
// möchte.
|
|
|
11 |
$dn = array(
|
|
|
12 |
"countryName" => "AT",
|
|
|
13 |
"stateOrProvinceName" => "Austria",
|
|
|
14 |
"localityName" => "Vienna",
|
|
|
15 |
"organizationName" => "TheosSoft",
|
|
|
16 |
"organizationalUnitName" => "software engeneering",
|
|
|
17 |
"commonName" => "theossoft.net",
|
|
|
18 |
"emailAddress" => "office@theossoft.net"
|
|
|
19 |
);
|
|
|
20 |
|
|
|
21 |
// Erzeugen eines neuen privaten (und öffentlichen) Schlüsselpaars
|
|
|
22 |
$privkey = openssl_pkey_new();
|
|
|
23 |
|
|
|
24 |
// Erzeugen einer Zertifikatssignierungsanfrage
|
|
|
25 |
$csr = openssl_csr_new($dn, $privkey);
|
|
|
26 |
|
|
|
27 |
// Erzeugen eines selbstsignierten Zertifikts, das fuer die Dauer von 365 Tagen
|
|
|
28 |
// gueltig ist.
|
|
|
29 |
$sscert = openssl_csr_sign($csr, null, $privkey, 365);
|
|
|
30 |
|
|
|
31 |
// Speichern des Zertifikats
|
|
|
32 |
openssl_csr_export_to_file($csr, "setup/pmkey.csr");
|
|
|
33 |
openssl_x509_export_to_file($sscert, "setup/pmkey.xpem");
|
|
|
34 |
openssl_pkey_export_to_file($privkey, "setup/pmkey.pem", "jDz7jJ1l2s99hR4Qa");
|
|
|
35 |
|
|
|
36 |
// Anzeigen der moeglichen aufgetretenen Fehler
|
|
|
37 |
while (($e = openssl_error_string()) != false) {
|
|
|
38 |
echo $e . "\n";
|
|
|
39 |
}
|
|
|
40 |
}
|
|
|
41 |
|
|
|
42 |
function encrypt($str) {
|
|
|
43 |
/* $f = realpath("setup/pmkey.xpem");
|
|
|
44 |
$key = openssl_pkey_get_public("file://" . $f);
|
|
|
45 |
|
|
|
46 |
if (!openssl_public_encrypt($str, $bcstr, $key)) {
|
|
|
47 |
echo "Error: Encrypt: Fehler beim Verschlüsseln eines Strings!<p>$str</p><br>\n";
|
|
|
48 |
}
|
|
|
49 |
|
|
|
50 |
openssl_free_key($key);
|
|
|
51 |
$cs = unpack("h*", $bcstr);
|
|
|
52 |
$cstr = implode(",", $cs);
|
|
|
53 |
// Anzeigen der moeglichen aufgetretenen Fehler
|
|
|
54 |
while (($e = openssl_error_string()) != false) {
|
|
|
55 |
echo "Encrypt: " . $e . "<br>\n";
|
|
|
56 |
}
|
|
|
57 |
*/
|
|
|
58 |
$cstr = md5("jDz7jJ1l2s99hR4Qa") . $str;
|
|
|
59 |
return $cstr;
|
|
|
60 |
}
|
|
|
61 |
|
|
|
62 |
function decrypt($cstr) {
|
|
|
63 |
if (strlen($cstr) < 10)
|
|
|
64 |
return $cstr;
|
|
|
65 |
|
|
|
66 |
/* $f = realpath("setup/pmkey.pem");
|
|
|
67 |
$key = openssl_pkey_get_private("file://" . $f, "jDz7jJ1l2s99hR4Qa");
|
|
|
68 |
$bcstr = pack("h*", $cstr);
|
|
|
69 |
|
|
|
70 |
if (!openssl_private_decrypt($bcstr, $str, $key, OPENSSL_PKCS1_PADDING)) {
|
|
|
71 |
echo "Error: Decrypt: Fehler beim Entschlüsseln eines Strings!<p>$cstr</p><br>\n";
|
|
|
72 |
}
|
|
|
73 |
|
|
|
74 |
openssl_free_key($key);
|
|
|
75 |
// Anzeigen der moeglichen aufgetretenen Fehler
|
|
|
76 |
while (($e = openssl_error_string()) != false) {
|
|
|
77 |
echo "Decrypt: " . $e . "<br>\n";
|
|
|
78 |
}
|
|
|
79 |
*/
|
|
|
80 |
$str = substr($cstr, 32);
|
|
|
81 |
return $str;
|
|
|
82 |
}
|
|
|
83 |
|
|
|
84 |
function WarnHacker($anz) {
|
|
|
85 |
global $unum;
|
|
|
86 |
global $rstufe;
|
|
|
87 |
|
|
|
88 |
echo "<p>Sie haben bereits (mehrfach) versucht dieses Programm\n";
|
|
|
89 |
echo "illegal zu manipulieren!<br>$unum $rstufe<br>\n";
|
|
|
90 |
echo "Der Administrator wurde per E-Mail darüber informiert\n";
|
|
|
91 |
|
|
|
92 |
if ($anz >= 3) {
|
|
|
93 |
echo "und ihr Zugang <b>gesperrt</b>! Um wieder freigeschalten\n";
|
|
|
94 |
echo "zu werden, wenden sie sich bitte an ihren Administrator!</p>";
|
|
|
95 |
} else {
|
|
|
96 |
echo "und ihr Zugang wird bei weiteren Versuchen gesperrt!</p>";
|
|
|
97 |
}
|
|
|
98 |
}
|
|
|
99 |
|
|
|
100 |
?>
|