I have been reading some articles on WPA/PSK encryption and one said that the hash is calculated like this:

Key = PBKDF2(passphrase, ssid, 4096, 256)

Where PBKDF2 is a standardized method to derive a key from a passphrase.

As you see here the key depends on the SSID, so if you have the same password with different SSID the key wouldn't be the same.

So it is not possible to generate (and save) like a rainbow table to WPA/PSK hash like hash:plain-text because the hash would need the SSID and the SSID is different from router to router?

1 Answer 1


Yes, that's the point. Technically, the parameter which is non-secret but alters the hashing process is called a salt. The salt is as powerful as it is unique; the more unique it is, the more it prevents attackers from doing parallel attacks (precomputed tables such as rainbow tables are a kind of parallel attack, if seen in the proper space-time referential). In WPA/WPA2, the SSID is used as salt on the basis that different WiFi routers will use different SSID.

This is not 100% effective: since each user can choose his SSID, without a global SSID allocation system, some SSID values are widely more popular than others (the default values chosen by manufacturers also lead to high SSID reuse). This site, for instance, reports that as many as 2.357% of all WiFi routers use "linksys" as SSID. This prompted some people to actually compute rainbow tables for these most common SSID and passwords (e.g. there).

  • Thank you for your answer .. and thank you for clearing the idea of a salt for me, i always saw that but didn't really get it. And well our ISP here puts random name in the SSID, IspName_4RandomAlphanumericCaracters. Commented Jan 31, 2014 at 13:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .