encriptarSodium.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. /*
  3. Sistema de Portales de Soler y Palau SA de CV
  4. (2021) Desarrollos y Servicios en Tecnología Inteligente S de RL de CV
  5. Versión 1.0,
  6. Última Actualización: 04/08/2021,
  7. Developer: José Luis Brito Nava
  8. */
  9. function encriptarDatos($data){
  10. $public = base64_decode("7HI2Fx6qL7MNJz9k/Ebj//Hz5A/TwE810JNlzHVQaDE=");
  11. $secret = base64_decode("141zCWF72vmuWgiUad8ropL0LRGtL5fMGICS5u96+Zs=");
  12. $nonce = random_bytes(SODIUM_CRYPTO_BOX_NONCEBYTES);
  13. $encryption_key = sodium_crypto_box_keypair_from_secretkey_and_publickey($secret, $public);
  14. $encrypted = sodium_crypto_box($data, $nonce, $encryption_key);
  15. $arrEnc = [base64_encode($encrypted), base64_encode($nonce)];
  16. $jsonEnc = json_encode($arrEnc);
  17. $strEnc = base64_encode($jsonEnc);
  18. return $strEnc;
  19. }
  20. function desencriptarDatos($data){
  21. $strDec = base64_decode($data);
  22. $jsonDec = json_decode($strDec);
  23. $encrypted = base64_decode($jsonDec[0]);
  24. $nonce = base64_decode($jsonDec[1]);
  25. $public = base64_decode("7HI2Fx6qL7MNJz9k/Ebj//Hz5A/TwE810JNlzHVQaDE=");
  26. $secret = base64_decode("141zCWF72vmuWgiUad8ropL0LRGtL5fMGICS5u96+Zs=");
  27. $decryption_key = sodium_crypto_box_keypair_from_secretkey_and_publickey($secret, $public);
  28. $decrypted = sodium_crypto_box_open($encrypted, $nonce, $decryption_key);
  29. return $decrypted;
  30. }