/** * Diese Funktion erstellt einen sh1 salt * @param $tosalt string zu verschlüsselnder String * @return array public Key, sh1 salt */ function genSalt($tosalt) { global $saltCfg, $pm; global $configuredSalt, $staticSalt, $dynamicSalt, $dynamicSaltLen, $useSalt, $useDynamic; if (!$useSalt) { return sha1($tosalt); } if (!isset($saltCfg['used']) || $saltCfg['used'] != true) { $saltCfg['used'] = 'true'; $pm->saveDataIni('users', $saltCfg); } if (!$configuredSalt) { configureSalt(); } //So, jetzt salzen wir :) $salt = $tosalt; //dazu den statischen. $salt .= $staticSalt; //Und noch nen Dynamischen generieren... $salt .= $public = genPublicKey($dynamicSalt, $dynamicSaltLen); return array(sha1($salt), $public); }
function encrypt($plainText, $privateKey) { $publicKey = genPublicKey(); $textArray = str_split($plainText); $shiftKeyArray = array(); for ($i = 0; $i < ceil(sizeof($textArray) / 40); $i++) { array_push($shiftKeyArray, sha1($privateKey . $i . $publicKey)); } $cipherTextArray = array(); for ($i = 0; $i < sizeof($textArray); $i++) { $cipherChar = ord($textArray[$i]) + ord($shiftKeyArray[$i]); $cipherChar -= floor($cipherChar / 255) * 255; $cipherTextArray[$i] = dechex($cipherChar); } unset($textarray); unset($shiftKeyArray); unset($cipherChar); $cipherStream = implode("", $cipherTextArray) . ":" . $publicKey; unset($publicKey); unset($cipherTextArray); return $cipherStream; }