For most password encryption, we can use MD5, SHA1 and other methods. Can effectively prevent data breaches, but these methods apply only to data encryption that does not need to be restored.
For information that needs to be restored, a reversible cryptographic decryption algorithm is required.
The following set of PHP functions is a way to implement this encryption decryption:
The encryption algorithm is as follows:
function Encrypt ($data, $key) {$key =md5 ($key); $x =0; $len =strlen ($data); $l =strlen ($key); for ($i = 0; $i < $len; $i + +) { if ($x = = $l) { $x = 0; } $char. = $key {$x}; $x + +; } for ($i = 0; $i < $len; $i + +) { $str. = Chr (Ord ($data {$i}) + (Ord ($char {$i}))%); } Return Base64_encode ($STR);}
The decryption algorithm is as follows:
function Decrypt ($data, $key) {$key = MD5 ($key); $x = 0; $data = Base64_decode ($data); $len = strlen ($data); $l = strlen ($key); for ($i = 0; $i < $len; $i + +) { if ($x = = $l) { $x = 0; } $char. = substr ($key, $x, 1); $x + +; } for ($i = 0; $i < $len; $i + +) { if (Ord (substr ($data, $i, 1)) < Ord (substr ($char, $i, 1)) { $st R. = Chr ((Ord ($data, $i, 1) + substr)-Ord (substr ($char, $i, 1))); } else { $str. = Chr (Ord (substr ($data, $i, 1))-Ord (substr ($char, $i, 1))); } } return $STR;}
The process of encrypting and decrypting above requires the use of an encryption key (i.e., parameter $key).
$data = ' PHP encryption and decryption algorithm '; Encrypted information $key = ' 123 '; Key $encrypt = Encrypt ($data, $key); $decrypt = Decrypt ($encrypt, $key); echo $encrypt, "\ n", $decrypt;
The above output will look similar to the following results:
Gnicsozzg+hns9zcfea7sefnghxf
PHP Encryption and decryption algorithm
As can be seen from the above results, this is a set of reversible encryption and decryption algorithms that can be used to encrypt some data that needs to be restored.