Home  >  Article  >  Backend Development  >  PHP encryption and decryption class example analysis_PHP tutorial

PHP encryption and decryption class example analysis_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 09:56:37734browse

PHP encryption and decryption class example analysis

This article mainly introduces the PHP encryption and decryption class. The example analyzes the principles and related techniques of PHP encryption and decryption, which is of great practical value. , friends in need can refer to it

This article describes the PHP encryption and decryption class with examples. Share it with everyone for your reference. The specific analysis is as follows:

This code supports array encryption, ciphertext validity period, and various symmetric encryption

 The parameters are as follows:

* @use ption::en($string, $key);

* @param String $string The string that needs to be encrypted

* @param String $skey key

* @param int $expiry Ciphertext validity period, valid when encrypted, in seconds, 0 means permanent validity

* @return String

 1. The php code is as follows:

 ?

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

/*

* -Tool Library-Encryption and Decryption Password

*/

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 The string that needs to be encrypted

* @param String $skey key

* @param int $expiry Ciphertext validity period, valid when encrypted, in seconds, 0 means permanent validity

* @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 The string to be decrypted

* @param String $skey key

* @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 . "
";

echo "encode : " . ($enstring = ption::en($str)) . '
';

echo "decode : " . ption::de($enstring);

1

2 3

45 6
$str['username'] = 'oschina'; $str['pw'] = '123456'; $str['huoxin'] = '!@#$%^&'; echo "string : " . $str . "
";
echo "encode : " . ($enstring = ption::en($str)) . '
';
echo "decode : " . ption::de($enstring);   希望本文所述对大家的php程序设计有所帮助。 http://www.bkjia.com/PHPjc/987100.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/987100.htmlTechArticlePHP加密解密类实例分析 这篇文章主要介绍了PHP加密解密类,实例分析了php实现加密与解密的原理与相关技巧,非常具有实用价值,需要的朋友可...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn