View file mobilink_wap/moduls/classes/class_mycrypter.php

File size: 2.15Kb
<?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;
        }
    }
}
?>