<?PHP // Mobilas.Net
CLASS mycrypter {
var $key = "ERifug8das";
PUBLIC FUNCTION SAFE_B64ENCODE($STRING) {
$DATA = BASE64_ENCODE($STRING);
$DATA = STR_REPLACE(ARRAY('+','/','='),ARRAY('-','_',''),$DATA);
RETURN $DATA;
}
PUBLIC FUNCTION SAFE_B64DECODE($STRING) {
$DATA = STR_REPLACE(ARRAY('-','_'),ARRAY('+','/'),$STRING);
$MOD4 = STRLEN($DATA) % 4;
IF ($MOD4) {
$DATA .= SUBSTR('====', $MOD4);
}
RETURN BASE64_DECODE($DATA);
}
PUBLIC FUNCTION encode($VALUE){
IF(!$VALUE){
RETURN FALSE;
}
$TEXT = $VALUE;
$IV_SIZE = MCRYPT_GET_IV_SIZE(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$IV = MCRYPT_CREATE_IV($IV_SIZE, MCRYPT_RAND);
$CRYPTTEXT = MCRYPT_ENCRYPT(MCRYPT_RIJNDAEL_256, $this->key, $TEXT, MCRYPT_MODE_ECB, $IV);
RETURN TRIM(mycrypter::SAFE_B64ENCODE($CRYPTTEXT));
}
PUBLIC FUNCTION decode($VALUE){
IF(!$VALUE){
RETURN FALSE;
}
$CRYPTTEXT = mycrypter::SAFE_B64DECODE($VALUE);
$IV_SIZE = MCRYPT_GET_IV_SIZE(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$IV = MCRYPT_CREATE_IV($IV_SIZE, MCRYPT_RAND);
$DECRYPTTEXT = MCRYPT_DECRYPT(MCRYPT_RIJNDAEL_256, $this->key, $CRYPTTEXT, MCRYPT_MODE_ECB, $IV);
RETURN TRIM($DECRYPTTEXT);
}
PUBLIC FUNCTION generator($SIZE,$TYPE='STANDART'){
$RANGES = FALSE;
$ARR_GEN = ARRAY
(
'STANDART' => '65-78,80-90,97-107,109-122,50-57',
'MEDIUM' => '65-90,97-122,48-57',
'LOW' => '40-59,61-91,93-126'
);
$RANGES = $ARR_GEN[$TYPE];
IF($RANGES <> FALSE){
$RANGE = EXPLODE(',', $RANGES);
$NUMRANGES = COUNT($RANGE);
MT_SRAND(TIME());
$P = FALSE;
FOR($I=1; $I<=$SIZE; $I++){
$RAND = MT_RAND(0,$NUMRANGES-1);
LIST($MIN,$MAX) = EXPLODE('-',$RANGE[$RAND]);
$GEN .= CHR(MT_RAND($MIN,$MAX));
}
RETURN $GEN;
}
}
}
?>