public function generate($length=10, $availables=self::CHAR_ALPHADIGIT, array $tokens=array(self::CHAR_ALPHA, self::CHAR_DIGIT)) {
		$tokens	= array_pad($tokens, $length, $availables);
		shuffle($tokens);
		$password	= '';
		foreach( $tokens as $token ) {
			$tokenChars = '';
			foreach( $this->primarySets as $flag => $chars ) {
				if( bintest($token, $flag) ) {
					$tokenChars .= $chars;
				}
			}
			$password .= $tokenChars[mt_rand(0, strlen($tokenChars)-1)];
		}
		return $password;
	}