gpt4 book ai didi

PHP加密解密类实例分析

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章PHP加密解密类实例分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了PHP加密解密类。分享给大家供大家参考。具体分析如下:

这段代码支持 数组加密 , 密文有效期, 各种对称加密 。

其中参数如下:

* @use ption::en($string, $key); * @param String $string 需要加密的字串 * @param String $skey 密钥 * @param int $expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效 * @return String 。

1. php代码如下:

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

2. 用法如下:

?
1
2
3
4
5
6
$str [ 'username' ] = 'oschina' ;
$str [ 'pw' ] = '123456' ;
$str [ 'huoxin' ] = '!@#$%^&' ;
echo "string : " . $str . " <br />" ;
echo "encode : " . ( $enstring = ption::en( $str )) . '<br />' ;
echo "decode : " . ption::de( $enstring );

希望本文所述对大家的php程序设计有所帮助.

最后此篇关于PHP加密解密类实例分析的文章就讲到这里了,如果你想了解更多关于PHP加密解密类实例分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com