Показать сообщение отдельно

  #2204  
Старый 14.12.2014, 14:52
Vikhedgehog
Постоянный
Регистрация: 24.07.2013
Сообщений: 362
С нами: 6738806

Репутация: 19
По умолчанию

Цитата:
Сообщение от binarymaster  

А я вот нашёл алгоритм генерации пин кода из MAC-адреса для роутера Huawei HG8245H.

Обнаружил его в коде веб интерфейса, он на JavaScript

Пример использования:

computeDefaultPin('20:0B:C7:C9:6E:94')

Код:
// According to wlanmac, calculate initial PIN code, algorithm HW_WLAN_CalWpsDefaultPin is the same
function computeDefaultPin(wlanMac)
{
    var mac = '';
    var temp = 0;
    var macnum = 0;
    var pin = 0;
    var defaultpin = 0;

    // Check wlanmac legitimacy
    if ((wlanMac == '') || (wlanMac == '00:00:00:00:00:00') || (wlanMac == 'FF:FF:FF:FF:FF:FF'))
    {
        alert(cfg_wlancfgdetail_language['amp_wlanmac_invaild']);
    }

    // Remove : symbols from wlanmac
    for (var i = 0; i < wlanMac.length; )
    {
        mac += wlanMac.substr(i,2);
        i += 3; 
    }

    // Take wlanmac after 7 bits and convert it to 10 hexadecimal
    for (var j = (mac.length - 1); j >= (mac.length - 7); j--)
    {
        temp = parseInt(mac.charCodeAt(j));

        if ((temp >= 97) && (temp <= 102))  //abcdef
        {
            temp = (temp - 97) + 10;
        }
        else if ((temp >= 65) && (temp <= 70))  //ABCDEF
        {
            temp = (temp - 65) + 10;
        }
        else if ((temp >= 48) && (temp <= 57))  //0123456789
        {
            temp = temp - 48;
        }
        else
        {
            alert(cfg_wlancfgdetail_language['amp_wlanmac_invaild']);
        }

        temp = temp * Math.pow(16, mac.length - j - 1);
        macnum += temp;    
    }
        
    pin = macnum % 10000000;
    if (pin == 0)
    {
        pin = 1234567;
    }

    // Add checksum
    defaultpin = pin * 10 + ComputeChecksum(pin);

    return defaultpin;
}
Круто, в инете прочел, что такие роутеры ставит МГТС для своего GPON. Странно, что у меня в округе только sercomm и intercross.
 
Ответить с цитированием