Security Patch for weak Key derivation

The current system generates weak keys which are susceptible to Brute
Force attacks. Since the key derivation just hashes the user provided
password, it can be brute forced using Rainbow tables i.e. precomputed
hashes for well known passwords.

The changes introduced, follow PKCS#5 standard. In it we use pseudo
random salt and 1000 iterations to initialize key factory which
generates our key, which is much more random and difficult to predict
or crack.

Number of iterations can be increased to enhance security further.
Merge pull request #1 from sohaibshaheen/master

Security Patch for weak Key Derivation - Urgent