Heim >Backend-Entwicklung >PHP-Tutorial >分享一个PHP加密解密的类

分享一个PHP加密解密的类

WBOY
WBOYOriginal
2016-07-25 08:44:12817Durchsuche
  1. class ption
  2. {
  3. private static $original = array('=', '+', '/');
  4. private static $later = array('O0O0O', 'o0O0o', 'oo00o');
  5. function __construct()
  6. {
  7. }
  8. private static function md5($skey = '')
  9. {
  10. $skey = $skey ? $skey : 'ui' ; //uicms::_config('security/authkey');
  11. return md5(substr($skey, 0, 16));
  12. }
  13. /**
  14. * @use ption::en($string, $key);
  15. * @param String $string 需要加密的字串
  16. * @param String $skey 密钥
  17. * @param int $expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效
  18. * @return String
  19. */
  20. static public function en($string = '', $skey = '', $expiry=0)
  21. {
  22. if( is_array( $string ) )
  23. {
  24. $string = json_encode($string); // uicms::json($string, true, 'en');
  25. }
  26. $string = str_pad($expiry ? $expiry + TIME : 0, 10, 0).$string;
  27. $strArr = str_split(base64_encode($string));
  28. $strCount = count($strArr);
  29. $skey = static::md5($skey);
  30. foreach (str_split($skey) as $key => $value)
  31. {
  32. $key }
  33. return str_replace(self::$original, self::$later, join('', $strArr));
  34. }
  35. /**
  36. * @use ption::de($string, $key);
  37. * @param String $string 需要解密的字串
  38. * @param String $skey 密钥
  39. * @return String
  40. */
  41. static public function de($string = '', $skey = '')
  42. {
  43. $strArr = str_split(str_replace(self::$later, self::$original, $string), 2);
  44. $strCount = count($strArr);
  45. $skey = static::md5($skey);
  46. foreach (str_split($skey) as $key => $value)
  47. {
  48. $key }
  49. $result = base64_decode(join('', $strArr));
  50. if(substr($result, 0, 10) == 0 || substr($result, 0, 10) - TIME > 0)
  51. {
  52. return substr($result, 10);
  53. }
  54. else
  55. {
  56. return false;
  57. }
  58. }
  59. }
复制代码

加密解密, PHP


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn