note 26602 modified in ref.mcrypt by betz
| From: | betz@php.net | Date: | Sat, 15 Feb 2003 17:28:29 +0000 |
| Subject: | note 26602 modified in ref.mcrypt by betz | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-44014@lists.php.net to get a copy of this message | ||
<?
class scrypt {
var $key;
function gen_key ($pass, $level=30) {
for ($i=0; $i<$level; $i++) $mymd[$i]=md5(substr($pass,($i%strlen($pass)),1));
for ($a=0; $a<32; $a++) for ($i=0; $i<$level; $i++) $key.=substr($mymd[$i],$a,1);
$this->key=$key;
}
function enc ($text, $method=1) { # 1=encrypt, 0=decrypt
$key=$this->key;
if ($method==0) {
$key=str_replace("3", "j", str_replace("2", "i",
str_replace("1", "h", str_replace("0", "g", $key))));
$key=str_replace("7", "n", str_replace("6", "m",
str_replace("5", "l", str_replace("4", "k", $key))));
$key=str_replace("b", "4", str_replace("a", "5",
str_replace("9", "6", str_replace("8", "7", $key))));
$key=str_replace("f", "0", str_replace("e", "1",
str_replace("d", "2", str_replace("c", "3", $key))));
$key=str_replace("j", "c", str_replace("i", "d",
str_replace("h", "e", str_replace("g", "f", $key))));
$key=str_replace("n", "8", str_replace("m", "9",
str_replace("l", "a", str_replace("k", "b", $key))));
$text=base64_decode($text);
}
for ($i=0; $i<strlen($key); $i=$i+2) $d[$i/2]=hexdec(substr($key,$i,2));
for ($i=0, $ntext=""; substr($text, $i, 1) !=""; $i++)
$ntext.=chr((ord(substr($text, $i, 1))+$d[($i%strlen($key))])%255);
if ($method==1) $ntext=base64_encode($ntext);
return ($ntext);
}
}
?>
--was--
RELASE 2
Sorry, I've done a critical error : I forgot declare the key in the enc function =>
everything was encoded but just in base64. Sorry, this is the relase :
<?
class scrypt {
var $key;
function gen_key ($pass, $level=30) {
for ($i=0; $i<$level; $i++) $mymd[$i]=md5(substr($pass,($i%strlen($pass)),1));
for ($a=0; $a<32; $a++) for ($i=0; $i<$level; $i++) $key.=substr($mymd[$i],$a,1);
$this->key=$key;
}
function enc ($text, $method=1) { # 1=encrypt, 0=decrypt
$key=$this->key;
if ($method==0) {
$key=str_replace("3", "j", str_replace("2", "i",
str_replace("1", "h", str_replace("0", "g", $key))));
$key=str_replace("7", "n", str_replace("6", "m",
str_replace("5", "l", str_replace("4", "k", $key))));
$key=str_replace("b", "4", str_replace("a", "5",
str_replace("9", "6", str_replace("8", "7", $key))));
$key=str_replace("f", "0", str_replace("e", "1",
str_replace("d", "2", str_replace("c", "3", $key))));
$key=str_replace("j", "c", str_replace("i", "d",
str_replace("h", "e", str_replace("g", "f", $key))));
$key=str_replace("n", "8", str_replace("m", "9",
str_replace("l", "a", str_replace("k", "b", $key))));
$text=base64_decode($text);
}
for ($i=0; $i<strlen($key); $i=$i+2) $d[$i/2]=hexdec(substr($key,$i,2));
for ($i=0, $ntext=""; substr($text, $i, 1) !=""; $i++)
$ntext.=chr((ord(substr($text, $i, 1))+$d[($i%strlen($key))])%255);
if ($method==1) $ntext=base64_encode($ntext);
return ($ntext);
}
}
?>
http://www.php.net/manual/en/ref.mcrypt.php