RsaServices.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?php
  2. namespace app\backend\modules\setting\services;
  3. /**
  4. * Created by PhpStorm.
  5. * User: 芸众网
  6. * Date: 2019/7/8
  7. * Time: 14:33
  8. */
  9. class RsaServices {
  10. private static $PRIVATE_KEY = '-----BEGIN RSA PRIVATE KEY-----MIICXgIBAAKBgQCoZZ8iUBprOIc0kGckr5ax6/Fd9IKKMc/XHayKEAvqpS0oz0b1ojEkpkdZBk0OWNhp73YNV+YLKBwwxOwb3u3hl8nBLoG/RilEbBMdCf55cUzNsfn/XF5CiLr/aci/OHuTe6ULvXs280T5M+nUh3iKdiT6z9XrFbH69C+xFoNInwIDAQABAoGAe+ape7msdo+VC5vkCB4ZprePVC3/jmawIfr3ZG4CFpeJ7qjz8O9xcSHXBS2ZrKC6Otex6Idv/213sHpzrt4L7+rSrgMOauWNjSVjr4T4Z168uvsnNocn+3GWfzbBPQj3PhjE64R/MkWDvuq2UK945WYtqFaC6LT1mJAXhjxqpiECQQDYGWYbCsUgQS0LnDzReyotkb9Eyr5UGlI8Nzn3PvwwkIS3N3yUsm2t3UokOw02DlhkC4f1aT097fM1w0FruSNNAkEAx31taitIGwgJg+yPmvwTs8AENm0wxi/V6loEXPBPxX2R4NjSG+ExYzA7/daDq//McKsX0EcYcsFN0E3HwSANmwJBAJUXGOHpUU1Kiihrd25TWissVdjBRATEUB4pP/2738QlwNqjFnmEjLUaak+KyjeUOBl19ywymkUCyPw7pQQMLDUCQQC84DKSDPyuK0PnFjk5QmXdEHZsmaFOY8gjpKrw286La8KMonz8TJCYGvkR8uKkHQMRwcxANLAfJopoKNxyK8j1AkEAwcY3EHeKe4i3FhCjGSqAGAzFFBS1jzTNZxw/cxMMCbfxFH4WvhowqoC1iAKDyZ7HF7V+RcxcfuhoBJi/3+ImEg==-----END RSA PRIVATE KEY-----';
  11. private static $PUBLIC_KEY = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCoZZ8iUBprOIc0kGckr5ax6/Fd9IKKMc/XHayKEAvqpS0oz0b1ojEkpkdZBk0OWNhp73YNV+YLKBwwxOwb3u3hl8nBLoG/RilEbBMdCf55cUzNsfn/XF5CiLr/aci/OHuTe6ULvXs280T5M+nUh3iKdiT6z9XrFbH69C+xFoNInwIDAQAB-----END PUBLIC KEY-----';
  12. /**
  13. * 获取私钥
  14. * @return bool|resource
  15. */
  16. private static function getPrivateKey()
  17. {
  18. $privKey = self::$PRIVATE_KEY;
  19. return openssl_pkey_get_private($privKey);
  20. }
  21. /**
  22. * 获取公钥
  23. * @return bool|resource
  24. */
  25. private static function getPublicKey()
  26. {
  27. $publicKey = self::$PUBLIC_KEY;
  28. return openssl_pkey_get_public($publicKey);
  29. }
  30. /**
  31. * 私钥加密
  32. * @param string $data
  33. * @return null|string
  34. */
  35. public static function privEncrypt($data = '')
  36. {
  37. if (!is_string($data)) {
  38. return null;
  39. }
  40. return openssl_private_encrypt($data,$encrypted,self::getPrivateKey()) ? base64_encode($encrypted) : null;
  41. }
  42. /**
  43. * 公钥加密
  44. * @param string $data
  45. * @return null|string
  46. */
  47. public static function publicEncrypt($data = '')
  48. {
  49. if (!is_string($data)) {
  50. return null;
  51. }
  52. return openssl_public_encrypt($data,$encrypted,self::getPublicKey()) ? base64_encode($encrypted) : null;
  53. }
  54. /**
  55. * 私钥解密
  56. * @param string $encrypted
  57. * @return null
  58. */
  59. public static function privDecrypt($encrypted = '')
  60. {
  61. if (!is_string($encrypted)) {
  62. return null;
  63. }
  64. return (openssl_private_decrypt(base64_decode($encrypted), $decrypted, self::getPrivateKey())) ? $decrypted : null;
  65. }
  66. /**
  67. * 公钥解密
  68. * @param string $encrypted
  69. * @return null
  70. */
  71. public static function publicDecrypt($encrypted = '')
  72. {
  73. if (!is_string($encrypted)) {
  74. return null;
  75. }
  76. return (openssl_public_decrypt(base64_decode($encrypted), $decrypted, self::getPublicKey())) ? $decrypted : null;
  77. }
  78. }