Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Что делает класс Base91? (http://www.flasher.ru/forum/showthread.php?t=211734)

EndoCrinologist 24.10.2015 23:02

Что делает класс Base91?
 
Код AS3:

package utils
{
 
    public class Base91 extends Object
    {
        public static const base:String = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ !@#$%^&*()-_+=[]{},.<>?/;:|~";
 
        public function Base91()
        {
            return;
        }// end function
 
        public static function toString1byte(param1:int) : String
        {
            if (param1 < 0)
            {
                param1 = 0;
            }
            if (param1 > 90)
            {
                param1 = 90;
            }
            return base.charAt(param1);
        }// end function
 
        public static function toString2byte(param1:int) : String
        {
            if (param1 < 0)
            {
                param1 = 0;
            }
            if (param1 > 8280)
            {
                param1 = 8280;
            }
            return base.charAt(param1 / 91) + base.charAt(param1 % 91);
        }// end function
 
        public static function toString3byte(param1:int) : String
        {
            if (param1 < 0)
            {
                param1 = 0;
            }
            if (param1 > 753570)
            {
                param1 = 753570;
            }
            return base.charAt(param1 / 8281) + base.charAt(param1 / 91 % 91) + base.charAt(param1 % 91);
        }// end function
 
        public static function toInt1byte(param1:String) : int
        {
            return base.indexOf(param1.charAt(0));
        }// end function
 
        public static function toInt2byte(param1:String) : int
        {
            return base.indexOf(param1.charAt(0)) * 91 + base.indexOf(param1.charAt(1));
        }// end function
 
        public static function toInt3byte(param1:String) : int
        {
            return base.indexOf(param1.charAt(0)) * 8281 + base.indexOf(param1.charAt(1)) * 91 + base.indexOf(param1.charAt(2));
        }// end function
 
        public static function logRotToString1Byte(param1:Number) : String
        {
            while (param1 > Math.PI * 2)
            {
 
                param1 = param1 - Math.PI * 2;
            }
            while (param1 < (-Math.PI) * 2)
            {
 
                param1 = param1 + Math.PI * 2;
            }
            if (param1 < 0)
            {
                param1 = param1 + Math.PI * 2;
            }
            return toString1byte(int(param1 * 91 / (2 * Math.PI)));
        }// end function
 
        public static function getRotFromString1Byte(param1:String) : Number
        {
            return Number(2 * Math.PI * toInt1byte(param1) / 91);
        }// end function
 
        public static function logFloatToString1Byte(param1:Number) : String
        {
            if (param1 < -6)
            {
                param1 = -6;
            }
            if (param1 > 6)
            {
                param1 = 6;
            }
            param1 = 0;
            return toString1byte(int(2 * 6 * param1 + 40));
        }// end function
 
        public static function getFloatFromString1Byte(param1:String) : Number
        {
            return Number(toInt1byte(param1) - 40) / (2 * 6);
        }// end function
 
    }
}

Этот класс преображает данные так:
Код:

1qw23er4        = bD/CP3hPXbwh
idnKil                = gb0pQS9tpSw5

Можно ли понять, что она делает и как-то обратить эту функцию обратно?

GBee 24.10.2015 23:55

Наверное тоже самое, что и бейз64, только дополнительных 27 символов юзают: " !@#$%^&*()-_+=[]{},.<>?/;:|~"


Часовой пояс GMT +4, время: 11:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.