Měřicí moduly Papago umí odesílat aktuálně naměřená data pomocí HTTP GETu. Umí posílat jednak klasický HTTP GET, jako většina našich Ethernetových a WiFi zařízení a jednak HTTP GET šifrovaný pomocí 128bitové šifry AES. V tomto článku Vám přinášíme jednoduchý návod jak tento GET dešifrovat na straně PHP serveru.
AES šifrování je standardem v současných šifrovacích postupech. AES používá například i šifrování WPA2 používané na přístupových bodech pro WiFi. Více informací o šifrování AES se můžete dozvědět například zde na Wikipedii.
Pro dešifrování HTTP GETu z Papaga je třeba PHP server verze 5.4 nebo novější. Následujícící postup používá PHP rozšíření MCrypt. Způsob šifrování je AES (Rijndael), 128bit, metoda NCFB. Tento skript uložte na Váš PHP server a zadejte do něj Šifrovací klíč, který používá Papago.
<!DOCTYPE html> <html> <head> <title>Příklad dešifrování AES v HTTP GETu z PAPAGO od papouch.com</title> <meta name="author" content="papouch.com"> </head> <body> <?php //Pokud neexistuje očekávaný parametr, vypsat chybu. if(!isset($_GET["encrypted_data"])) { echo '$_GET[encrypted_data] not found!'; die; }; //Vyzvednutí zašifrovaných dat v parametru encrypted_data poslaném HTTP GETem $edata = $_GET["encrypted_data"]; //Do proměnné $key vložte text, který je v Papagu zadaný jako Šifrovací klíč $key = "aaaaaaaaaaaaaaaa"; //Prvních 16 byte je inicializační vektor $int_vector = substr($edata, 0, 16); //Šifrovaná data $data = substr($edata, 16); //Dešifrování dat $cypher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'ncfb', ''); mcrypt_generic_init($cypher, $key, $int_vector); $result = mdecrypt_generic($cypher, $data); //V proměnné $result jsou dešifrovaná data echo "<b>Decrypted data:</b></br>$result"; ?> </body> </html>
Papago 2PT ETH odešle po stisku testovacího tlačítka tento HTTP GET:
decrypt.php?encrypted_data=%DC%BD%5D%C1%DE%C4%0A%66%8B%69%0C%6D%8D%70%B9%11%EA%8C%19%2A%93%F1%71%87%B7%47%94%77%C7%A2%71%D9%1A%3D%BA%21%CF%0D%D5%42%1F%01%23%7B%AF%31%C9%6D%D6%EC%87%C4%39%E4%76%84%29%A9%C1%31%74%05%31%3F%96%43%13%3C%73%08%D6%8F%56%F5%6C%A2%77%53%C6%A7%10%8F%47%A5%A7%2D%04%9B%58%A0%94
V Papagu je nastaven šifrovací klíč aaaaaaaaaaaaaaaa, dle příkladu výše. Výstupem z příkladu tak jsou tato data:
mac=0080A393A273&type=Papago 2PT ETH&guid=PAPAGO-TEST-GUID&description=TEST
Vytvořte PHP soubor s tímto obsahem, vložte jen na Váš server a otevřete v prohlížeči:
<? phpinfo(); ?>
Výstupem je obsáhlý výpis, který by měl obsahovat sekci mcrypt, která vypadá nějak takto:
Kompletní dokumentace pro moduly Papago 2PT ETH a WIFI, PTS ETH a WIFI, 2TC ETH a WIFI a 2TH ETH a WIFI. Verze pro firmware 1.5.
Velikost souboru: 1,61 MB
Datum: 15.09.2016