Hlavní menu:

Kontakt

Telefony:

Objednávky: +420 267 314 267
Technická podpora:
+420 267 314 267

Reklamace, servis:
+420 272 732 827
Zakázkový vývoj: +420 272 732 827

Fax:

+420 267 314 269

Objednávky: obchod@papouch.com
Dotazy: papouch@papouch.com

V našem e-shopu můžete platit také kartami MasterCard®, Maestro®, VISA® a VISA Electron®.

Jak na to? > Návody > Dešifrování AES v HTTP GETu z Papaga >

Dešifrování AES v HTTP GETu z Papaga

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>

Příklad GETu šifrovaného pomocí AES

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

Jak ověřit, že Váš PHP server umí MCrypt?

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:

Sekce mcrypt ve výpisu konfigurace PHP serveru pomocí phpinfo()

Obrázky



Soubory:

Ke stažení


papago.pdfDokumentace Papago

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

Stáhnout


Máte k této stránce dotaz nebo připomínku? Napište nám:


Pokud máte jakýkoli dotaz, návrh nebo připomínku, budeme rádi, když nám napíšete pomocí následujícího formuláře. Můžete nás samozřejmě kontaktovat i telefonicky nebo e-mailem jak je uvedeno v kontaktech.




ERROR