Bøvl med simpel encryption / decryption
Jeg skal bruge noget kryptering og eftersom mcrypt ikke er installeret på min server, har jeg lavet et meget simpel sæt funktioner til det.Problemet er bare at det jeg krypterer ikke overlever helt, men efter følgende system (j for ja=overlever og n for nej=bliver til juks):
jjjjnnjjjjnnjjjjnnjjjjnn...
Min kode:
------------------------------------------------------------
$maxChr=255;
function add($chr1, $chr2){
$num=ord($chr1)+ord($chr2);
if($num > $maxChr)
$num-=$maxChr;
return chr($num);
}
function sub($chr1, $chr2){
$num=ord($chr1)-ord($chr2);
if($num < 0)
$num+=$maxChr;
return chr($num);
}
function encrypt($data, $key){
$encrypted=$data;
$k=0;
for($i=0;$i < strlen($data);$i++){
if((++$k) > strlen($key))
$k=1;
if((++$step) > 5)
$step=1;
switch($step){
case 1:
$encrypted[$i]=add($data[$i],strlen($key));
break;
case 2:
$encrypted[$i]=sub($data[$i],strlen($key));
break;
case 3:
$encrypted[$i]=add($data[$i],$key[$k]);
break;
case 4:
$encrypted[$i]=sub($data[$i],$key[$k]);
break;
case 5:
$encrypted[$i]=sub($key[$k],$data[$i]);
break;
default:
break;
}
}
return $encrypted;
}
function decrypt($encrypted, $key){
$data=$encrypted;
$k=0;
for($i=0;$i < strlen($encrypted);$i++){
if((++$k) > strlen($key))
$k=1;
if((++$step) > 5)
$step=1;
switch($step){
case 1:
$data[$i]=sub($encrypted[$i],strlen($key));
break;
case 2:
$data[$i]=add($encrypted[$i],strlen($key));
break;
case 3:
$data[$i]=sub($encrypted[$i],$key[$k]);
break;
case 4:
$data[$i]=add($encrypted[$i],$key[$k]);
break;
case 5:
$data[$i]=add($key[$k],$encrypted[$i]);
break;
default:
break;
}
}
return $data;
}
------------------------------------------------------------
E-)mil
