PHP source code analysis of DZX1.5 encryption and decryption function authcode usage_PHP tutorial

WBOY
Release: 2016-07-13 09:50:04
Original
787 people have browsed it

Usage of DZX1.5 encryption and decryption function authcode in php source code analysis

This article describes the usage of DZX1.5 encryption and decryption function authcode in php source code analysis. Share it with everyone for your reference. The specific analysis 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

$authkey = '';

/**

* @param string $string: The input plaintext (or ciphertext) that needs to be encrypted (or decrypted)

* @param string $operation: 'DECODE' or other, the default means decryption, input other means encryption

* @param string $key: encryption and decryption key

* @param int $expiry: Validity period

*/

function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {

global $authkey;

$ckey_length = 4;

$key = md5($key != '' ? $key : $authkey);

$keya = md5(substr($key, 0, 16));

$keyb = md5(substr($key, 16, 16));

$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);

$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf(' 0d', $expiry ? $expiry time() : 0).substr(md5($ string.$keyb), 0, 16).$string;

$string_length = strlen($string);

$result = '';

$box = range(0, 255);

$rndkey = array();

for($i = 0; $i <= 255; $i ) {

$rndkey[$i] = ord($cryptkey[$i % $key_length]);

}

for($j = $i = 0; $i < 256; $i ) {

$j = ($j $box[$i] $rndkey[$i]) % 256;

$tmp = $box[$i];

$box[$i] = $box[$j];

$box[$j] = $tmp;

}

for($a = $j = $i = 0; $i < $string_length; $i ) {

$a = ($a 1) % 256;

$j = ($j $box[$a]) % 256;

$tmp = $box[$a];

$box[$a] = $box[$j];

$box[$j] = $tmp;

$result .= chr(ord($string[$i]) ^ ($box[($box[$a] $box[$j]) % 256]));

}

if($operation == 'DECODE') {

if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr (md5(substr($result, 26).$keyb), 0, 16)) {

return substr($result, 26);

} else {

return '';

}

} else {

return $keyc.str_replace('=', '', base64_encode($result));

}

}

$str = '1234';

$key = '1234';

echo "plain text:".$str;

echo "
";

echo "Key:".$key;

$encode = authcode($str,'11',$key);

echo "
";

echo "Encrypted ciphertext:".$encode;

echo "
";

$decode = authcode($encode,'DECODE',$key);

echo "Decrypted plain text:".$decode;

/*End of php*/

The running results are as follows:

Plain text: 1234

Key:1234

Encrypted ciphertext: a52f67eXZGVy0HtQBo4vOREhq3WxnL6E2zlx75JGfoJW

Decrypted plain text: 1234

I hope this article will be helpful to everyone’s PHP programming design.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1018379.htmlTechArticlephp source code analysis of DZX1.5 encryption and decryption function authcode usage This article explains the DZX1.5 encryption of php source code analysis Decryption function authcode usage. Share it with everyone for your reference. Detailed analysis...
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template