0,0 → 1,100 |
<?php |
function CreateCryptKey() { |
// Angabe der Daten für den distinguished name, der in dem Zertifikat benutzt |
// wird. Sie müssen die Werte dieser Schlüssel so anpassen, dass diese ihrem |
// Namen und Firma entsprechen, oder um präziser zu sein, den Namen und die |
// Firma der Person/Seite angeben, für die Sie das Zertifikat erzeugen. |
// Für SSL Zertifikate entspricht der commonName gewöhnlich dem Domainnamen, |
// für den das Zertifikat benutzt werden soll, aber bei S/MIME Zertifikaten |
// entspricht der commonName dem Namen der Person, die das Zertifikat nutzen |
// möchte. |
$dn = array( |
"countryName" => "AT", |
"stateOrProvinceName" => "Austria", |
"localityName" => "Vienna", |
"organizationName" => "TheosSoft", |
"organizationalUnitName" => "software engeneering", |
"commonName" => "theossoft.net", |
"emailAddress" => "office@theossoft.net" |
); |
|
// Erzeugen eines neuen privaten (und öffentlichen) Schlüsselpaars |
$privkey = openssl_pkey_new(); |
|
// Erzeugen einer Zertifikatssignierungsanfrage |
$csr = openssl_csr_new($dn, $privkey); |
|
// Erzeugen eines selbstsignierten Zertifikts, das fuer die Dauer von 365 Tagen |
// gueltig ist. |
$sscert = openssl_csr_sign($csr, null, $privkey, 365); |
|
// Speichern des Zertifikats |
openssl_csr_export_to_file($csr, "setup/pmkey.csr"); |
openssl_x509_export_to_file($sscert, "setup/pmkey.xpem"); |
openssl_pkey_export_to_file($privkey, "setup/pmkey.pem", "jDz7jJ1l2s99hR4Qa"); |
|
// Anzeigen der moeglichen aufgetretenen Fehler |
while (($e = openssl_error_string()) != false) { |
echo $e . "\n"; |
} |
} |
|
function encrypt($str) { |
/* $f = realpath("setup/pmkey.xpem"); |
$key = openssl_pkey_get_public("file://" . $f); |
|
if (!openssl_public_encrypt($str, $bcstr, $key)) { |
echo "Error: Encrypt: Fehler beim Verschlüsseln eines Strings!<p>$str</p><br>\n"; |
} |
|
openssl_free_key($key); |
$cs = unpack("h*", $bcstr); |
$cstr = implode(",", $cs); |
// Anzeigen der moeglichen aufgetretenen Fehler |
while (($e = openssl_error_string()) != false) { |
echo "Encrypt: " . $e . "<br>\n"; |
} |
*/ |
$cstr = md5("jDz7jJ1l2s99hR4Qa") . $str; |
return $cstr; |
} |
|
function decrypt($cstr) { |
if (strlen($cstr) < 10) |
return $cstr; |
|
/* $f = realpath("setup/pmkey.pem"); |
$key = openssl_pkey_get_private("file://" . $f, "jDz7jJ1l2s99hR4Qa"); |
$bcstr = pack("h*", $cstr); |
|
if (!openssl_private_decrypt($bcstr, $str, $key, OPENSSL_PKCS1_PADDING)) { |
echo "Error: Decrypt: Fehler beim Entschlüsseln eines Strings!<p>$cstr</p><br>\n"; |
} |
|
openssl_free_key($key); |
// Anzeigen der moeglichen aufgetretenen Fehler |
while (($e = openssl_error_string()) != false) { |
echo "Decrypt: " . $e . "<br>\n"; |
} |
*/ |
$str = substr($cstr, 32); |
return $str; |
} |
|
function WarnHacker($anz) { |
global $unum; |
global $rstufe; |
|
echo "<p>Sie haben bereits (mehrfach) versucht dieses Programm\n"; |
echo "illegal zu manipulieren!<br>$unum $rstufe<br>\n"; |
echo "Der Administrator wurde per E-Mail darüber informiert\n"; |
|
if ($anz >= 3) { |
echo "und ihr Zugang <b>gesperrt</b>! Um wieder freigeschalten\n"; |
echo "zu werden, wenden sie sich bitte an ihren Administrator!</p>"; |
} else { |
echo "und ihr Zugang wird bei weiteren Versuchen gesperrt!</p>"; |
} |
} |
|
?> |