Partial and full hash of the MAC addresses detected by Accuware WiFi Location Monitor

In order to comply with the EU General Data Protection Regulation (GDPR) all the MAC addresses detected by Accuware WiFi Location Monitor (made available through the real-time API and the CSV service) are hashed one-way which means that:

  1. starting from the hashed MAC address it is IMPOSSIBLE to compute the original MAC address.
  2. starting from the original MAC address it is possible to compute the hashed MAC address (with the algorithm described below).

Specifically there are 2 types of hash available:

  • Partial Hash (applied by default for every new site created) – only the last part (last 3 octets) of the MAC address is hashed allowing thus to identify the vendor of the Wi-Fi chip using an official repository like this one or using an API like this one. The partially hashed MAC addresses have the first 3 octets identical to the first 3 octets of the original MAC address, then the “H” letter and then the hash of the remaining part of the original MAC address:
    • EXAMPLE: original MAC address: 14:8F:C6:11:22:22 → hashed MAC address: 14:8F:C6:H5:21:YD (14:8F:C6:XX:XX:XX -> Apple Inc.)
  • Fully Hash – the MAC address is completely hashed. The fully hashed MAC addresses begins with the “H” letter:
    • EXAMPLE: original MAC address: 14:8F:C6:11:22:22 → hashed MAC address: HK:ZB:KZ:R5:21:YD

The location of a station is represented in JSON format as in the following example:

How to convert a MAC address into a hashed MAC address

Below you can find 2 examples of algorithms (written in Ruby and Java) that allows to compute the hashed MAC address (partial or full hashed) starting from a MAC address.

NOTE: the variable site key passed to the hashing function MUST be hard coded to a string provided by Accuware (which is NOT to the siteID!)

Ruby

Code

Example

C#

Code

JAVA

Code