user3668837
user3668837

Reputation:

How can I encrypt data in mysql database?

I have a PHP file which allows users to insert text into the MySql database. I want that data to be encrypted. (Any encryption would be ok for me... MD5, SHA1, SHA512, any of them) And when the user requests the data from the database, it is shown as regular plain text (The value entered by him). Please help me how can I do it?

Upvotes: 1

Views: 4612

Answers (3)

vitsoft
vitsoft

Reputation: 5775

On user registration, concatenate login name and password chosen by him/her with a salt value, hash the concatenation with PHP $PwdHash=md5($salt.$loginname.$password); and store $PwdHash in database.

When the user wants to autenticate later, he/she sends the $loginname and $password again. Repeat the same with obtained credentials $PwdHash=md5($salt.$loginname.$password); and compare computed $PwdHash with PwdHash stored in your database row corresponding to $loginname.

Salt is an arbitrary constant secret value chosen by you, e.g. $salt="user3668837"; . Using the salt prevents the attacker to dig out passwords from your database with rainbow tables if he managed to steal database content.

Upvotes: 0

user3522371
user3522371

Reputation:

MD5, SHA1, SHA512 are hashing and compression tools, so it is impossible to decrypt text that is cloaked by these algorithms (check the difference between hashing and encryption).

These 2 PHP functions could suit your needs for this specific case: you case use this function to encrypt and this one to decrypt

Upvotes: 1

VMai
VMai

Reputation: 10336

MD5, SHA1 and SHA512 are hash-functions, no reversible encryption.

I would recommend to use the encryption/decryption pair AES_ENCRYPT and AES_DECRYPT.

Upvotes: 1

Related Questions