Working with the back-end APIs would require you to apply additional security layers such as Data Encryption. This is to ensure a secured handshake to every client application that will consume it. One of the common problems is how you will translate encryption to a different language such as C# to Php. Today in this article, I will create a sample for TRIPLE DES encryption/decryption using PHP.
I have encountered this problem in translating C# triple des encryption to PHP. Here is the code that I found on the internet that solved my problem. I hope this helps someone who is also looking for this same problem.
Please also visit my Blog Page for more programming topics.
Let’s Start:
First, Create a php file inside htdocs folder if you are using XAMP or WAMP navigate to C:\xampp\htdocs.
Below are the codes for TRIPLE DES encryption/decryption using PHP.
Encryption:
function Encryption($data, $secret) { //Generate a key from a hash $key = md5(utf8_encode($secret), true); $data2 = utf8_encode($data); $iv =utf8_encode("aUrxt1ry"); //Take first 8 bytes of $key and append them to the end of $key. $key .= substr($key, 0, 8); //Pad for PKCS7 $blockSize = mcrypt_get_block_size('tripledes', 'cbc'); //Encrypt data $encData = mcrypt_encrypt('tripledes', $key, $data2, MCRYPT_MODE_CBC, $iv); return urlencode(base64_encode($encData)); }
Decryption:
function Decryption($data, $secret) { //Generate a key from a hash $data2 = urldecode($data); $iv =utf8_encode("aUrxt1ry"); $key = md5(utf8_encode($secret), true); //Take first 8 bytes of $key and append them to the end of $key. $key .= substr($key, 0, 8); $data3 = base64_decode($data2); return $data4 = mcrypt_decrypt('tripledes', $key, $data3, MCRYPT_MODE_CBC, $iv); }
To use and try this function
To execute the function above you can directly echo the result by simply using the code below.
echo Encryption("The quick brown fox","Q4Bz89FGc");echo "<br/>"; echo Decryption("lDWFOLQFkmXkbrmEa0i1OsM2Dqnv5b7T","Q4Bz89FGc")
Code Summary:
This is the full source code. You may create a sing PHP file, paste the code below, and try running it in your Apache server. You can use Xamp for a cross-platform server or WAMP for Windows.
<?php function Encryption($data, $secret) { //Generate a key from a hash $key = md5(utf8_encode($secret), true); $data2 = utf8_encode($data); $iv =utf8_encode("aUrxt1ry"); //Take first 8 bytes of $key and append them to the end of $key. $key .= substr($key, 0, 8); //Pad for PKCS7 $blockSize = mcrypt_get_block_size('tripledes', 'cbc'); //Encrypt data $encData = mcrypt_encrypt('tripledes', $key, $data2, MCRYPT_MODE_CBC, $iv); return urlencode(base64_encode($encData)); } function Decryption($data, $secret) { //Generate a key from a hash $data2 = urldecode($data); $iv =utf8_encode("aUrxt1ry"); $key = md5(utf8_encode($secret), true); //Take first 8 bytes of $key and append them to the end of $key. $key .= substr($key, 0, 8); $data3 = base64_decode($data2); return $data4 = mcrypt_decrypt('tripledes', $key, $data3, MCRYPT_MODE_CBC, $iv); } echo Encryption("The quick brown fox","Q4Bz89FGc");echo "<br/>"; echo Decryption("lDWFOLQFkmXkbrmEa0i1OsM2Dqnv5b7T","Q4Bz89FGc") ?>