Решил опубликовать очередной свой класс. Этот класс служит для шифрования/кодирования. Меньше слов, смотрим код. Вопросы в комментарии.
<?php
class Crypt
{
protected static $_config = array(
'algorithm' => MCRYPT_BLOWFISH,
'mode' => MCRYPT_MODE_ECB,
'key' => 'crypt_key',
'md5' => 'md5_salt',
'sha1' => 'sha1_salt');
private static $resource = null;
protected static function init()
{
if(!self::$resource)
{
self::$resource = mcrypt_module_open(self::$_config['algorithm'], null, self::$_config['mode'], null);
mcrypt_generic_init(self::$resource, self::$_config['key'], mcrypt_create_iv(mcrypt_enc_get_iv_size(self::$resource), MCRYPT_RAND));
}
}
public static function mcrypt_encrypt($str)
{
self::init();
return mcrypt_generic(self::$resource, $str);
}
public static function mcrypt_decrypt($str)
{
self::init();
return rtrim(mdecrypt_generic(self::$resource, $str));
}
public static function hex_encrypt($string)
{
$hex = '';
for ($i=0; $i < strlen($string); $i++) $hex .= dechex(ord($string[$i]));
return $hex;
}
public static function hex_decrypt($hex)
{
$string = '';
for ($i = 0; $i < strlen($hex)-1; $i += 2) $string .= chr(hexdec($hex[$i] . $hex[$i+1]));
return $string;
}
public static function GetRandomHash($length = 6)
{
$hChars = unserialize('a:62:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;i:10;s:1:"A";i:11;s:1:"a";i:12;s:1:"B";i:13;s:1:"b";i:14;s:1:"C";i:15;s:1:"c";i:16;s:1:"D";i:17;s:1:"d";i:18;s:1:"E";i:19;s:1:"e";i:20;s:1:"F";i:21;s:1:"f";i:22;s:1:"G";i:23;s:1:"g";i:24;s:1:"H";i:25;s:1:"h";i:26;s:1:"I";i:27;s:1:"i";i:28;s:1:"J";i:29;s:1:"j";i:30;s:1:"K";i:31;s:1:"k";i:32;s:1:"L";i:33;s:1:"l";i:34;s:1:"M";i:35;s:1:"m";i:36;s:1:"N";i:37;s:1:"n";i:38;s:1:"O";i:39;s:1:"o";i:40;s:1:"P";i:41;s:1:"p";i:42;s:1:"Q";i:43;s:1:"q";i:44;s:1:"R";i:45;s:1:"r";i:46;s:1:"S";i:47;s:1:"s";i:48;s:1:"T";i:49;s:1:"t";i:50;s:1:"U";i:51;s:1:"u";i:52;s:1:"V";i:53;s:1:"v";i:54;s:1:"W";i:55;s:1:"w";i:56;s:1:"X";i:57;s:1:"x";i:58;s:1:"Y";i:59;s:1:"y";i:60;s:1:"Z";i:61;s:1:"z";}');
$hash = '';
for($i = 0; $i < $length ; $i++) $hash .= $hChars[array_rand($hChars)];
return $hash;
}
public static function md5($string, $raw_output = false)
{
return md5($string . sha1($string . self::$_config['sha1']) . self::$_config['md5'], $raw_output);
}
public static function sha1($string, $raw_output = false)
{
return sha1($string . md5($string . self::$_config['md5']) . self::$_config['sha1'], $raw_output);
}
public static function base64_encode($string)
{
return strtr(base64_encode($string), '+/=', '-_~');
}
public static function base64_decode($string)
{
return base64_decode(strtr($string, '-_~', '+/='));
}
}
Кстати, я планирую заняться разработкой собственного продукта для управления сервером. Думаю в конце лета покажу beta версию своей панели (даже название не могу придумать 🙂 )
Симпатичные всплывающие окошки на jQuery — ThickBox – всплывающие окна на jQuery
Проблемы с компьютером? Вам сюда — ремонт компьютеров
А как использовать, можно пример использования и конечный результат?
Ну что, продукт для управления сервером развивается, или забили?)
Было бы интересно увидеть)) Пусть и бету)
В свое время проделал довольно большую работу, но из-за недостатка времени разработку проекта пришлось приостановить на неопределенный срок.. Инвестиции бы все решили 🙂