Reputation: 13
I am currently developing a CRM app. This app enables people to create contacts and save them. There is also the option to send emails.
I've looked into PHP. I am working with Laravel. My database structure is quite easy:
Table: emails
id (integer)
server (varchar)
username (varchar)
password (varchar)
time_added (timestamp)
I did not find any other way connecting to a given SMTP server other than saving the plain data. This is why I wanted to ask if anyone knows a way of encrypting that data, saving user passwords without the risk of getting exposed?
It is extremely important for us, as sending emails from provided accounts is one of the core features.
Upvotes: 1
Views: 442
Reputation: 35337
Laravel provides the encryption methods via the Crypt facade and is very easy to use:
$enc = Crypt::encryptString('password'); // returns AES encrypted string
$password = Crypt::decryptString($enc); // returns decrypted string
However, there's always a risk of getting exposed. Encryption won't protect against everything. Application level encryption in the database protects leaks from the database server or database backups but won't protect against unauthorized access to your application server.
Upvotes: 1