SimpleSec.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * SimpleSec.php UTF-8
  4. * 简单加解密
  5. *
  6. * @date : 2018/4/24 23:40
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huolib\tool;
  13. class SimpleSec {
  14. /**
  15. * 简单对称加密算法之加密
  16. *
  17. * @param String $string 需要加密的字串
  18. * @param String $key 加密EKY
  19. *
  20. * @return String
  21. */
  22. public static function encode($string = '', $key = 'huosdk') {
  23. $_str_arr = str_split(base64_encode($string));
  24. $_str_count = count($_str_arr);
  25. foreach (str_split($key) as $_k => $_v) {
  26. $_k < $_str_count && $_str_arr[$_k] .= $_v;
  27. }
  28. return str_replace(
  29. array('=', '+', '/'
  30. ), array('O0O0O', 'o000o', 'oo00o'
  31. ), join('', $_str_arr)
  32. );
  33. }
  34. /**
  35. * 简单对称加密算法之解密
  36. *
  37. * @param String $string 需要解密的字串
  38. * @param String $key 解密KEY
  39. *
  40. * @return String
  41. */
  42. public static function decode($string = '', $key = 'huosdk') {
  43. $_str_arr = str_split(
  44. str_replace(
  45. array('O0O0O', 'o000o', 'oo00o'
  46. ), array('=', '+', '/'
  47. ), $string
  48. ), 2
  49. );
  50. $_str_count = count($_str_arr);
  51. foreach (str_split($key) as $_k => $_v) {
  52. $_k <= $_str_count && isset($_str_arr[$_k]) && $_str_arr[$_k][1] === $_v
  53. && $_str_arr[$_k] = $_str_arr[$_k][0];
  54. }
  55. return base64_decode(join('', $_str_arr));
  56. }
  57. }