关键词搜索

源码搜索 ×
×

TP5.1写接口用来用户ID进行加密解密的方法

发布2021-03-25浏览1023次

详情内容

  1. //对uid进行加密
  2. function think_encrypt($data, $key = '', $expire = 0) {
  3. $key = md5(empty($key) ? Env::get('CRYPT_KEY') : "");
  4. $data = base64_encode($data);
  5. $x = 0;
  6. $len = strlen($data);
  7. $l = strlen($key);
  8. $char = '';
  9. for ($i = 0; $i < $len; $i++) {
  10. if ($x == $l) $x = 0;
  11. $char .= substr($key, $x, 1);
  12. $x++;
  13. }
  14. $str = sprintf('%010d', $expire ? $expire + time():0);
  15. for ($i = 0; $i < $len; $i++) {
  16. $str .= chr(ord(substr($data, $i, 1)) + (ord(substr($char, $i, 1)))%256);
  17. }
  18. return str_replace(array('+','/','='),array('-','_',''),base64_encode($str));
  19. }
  20. //对uid解密
  21. function think_decrypt($data, $key = ''){
  22. $key = $key = md5(empty($key) ? Env::get('CRYPT_KEY') : "");
  23. $data = str_replace(array('-','_'),array('+','/'),$data);
  24. $mod4 = strlen($data) % 4;
  25. if ($mod4) {
  26. $data .= substr('====', $mod4);
  27. }
  28. $data = base64_decode($data);
  29. $expire = substr($data,0,10);
  30. $data = substr($data,10);
  31. if($expire > 0 && $expire < time()) {
  32. return '';
  33. }
  34. $x = 0;
  35. $len = strlen($data);
  36. $l = strlen($key);
  37. $char = $str = '';
  38. for ($i = 0; $i < $len; $i++) {
  39. if ($x == $l) $x = 0;
  40. $char .= substr($key, $x, 1);
  41. $x++;
  42. }
  43. for ($i = 0; $i < $len; $i++) {
  44. if (ord(substr($data, $i, 1))<ord(substr($char, $i, 1))) {
  45. $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
  46. }else{
  47. $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
  48. }
  49. }
  50. return base64_decode($str);
  51. }

相关技术文章

最新源码

下载排行榜

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载