Location: PHPKode > projects > TheoPlan > pm/crypt.inc
<?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" => "hide@address.com"
	);

	// 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&uuml;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&uuml;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&uuml;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>";
   }
}

?>
Return current item: TheoPlan