实用的PHP带公钥加密类分享(每次加密结果都不一样哦)

2025-05-29 0 79

WEB交互安全一直是个各大网站的首要解决方案,本文介绍的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

65

66

67
<?php

/**

* PHP加密类

* 琼台博客

*/

class Jiami{

// 公钥

protected $key = 'lee';

private function keyED($txt,$encrypt_key){

$encrypt_key = md5($encrypt_key);

$ctr=0;

$tmp = '';

for ($i=0;$i<strlen($txt);$i++){

if ($ctr==strlen($encrypt_key)){

$ctr=0;

}

$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);

$ctr++;

}

return $tmp;

}

public function encrypt($txt,$key=''){

if(empty($key)){

$key=$this->key;

}

srand((double)microtime()*1000000);

$encrypt_key = md5(rand(0,32000));

$ctr=0;

$tmp = '';

for ($i=0;$i<strlen($txt);$i++) {

if ($ctr==strlen($encrypt_key)){

$ctr=0;

}

$tmp.= substr($encrypt_key,$ctr,1).(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));

$ctr++;

}

return $this->keyED($tmp,$key);

}

public function decrypt($txt,$key=''){

if(empty($key)){

$key=$this->key;

}

$txt = $this->keyED($txt,$key);

$tmp = '';

for ($i=0;$i<strlen($txt);$i++){

$md5 = substr($txt,$i,1);

$i++;

$tmp.= (substr($txt,$i,1) ^ $md5);

}

return $tmp;

}

public function setKey($key){

if(empty($key)){

return null;

}

$this->key=$key;

}

public function getPK(){

return $this->key;

}

}

使用方法:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24
<?php

// 先包含加密类

require_once('jiami.class.php');

// 要加密的字符串

$string = 'http://www.zzvips.com';

// 实例化加密类

$jiami= new Jiami();

// 设置公钥

$jiami->setKey('qttc');

// 加密字符串

$enc = $jiami->encrypt($string,$jiami->getPK());

// 解密字符串

$dec = $jiami->decrypt($enc,$jiami->getPK());

echo '<meta charset="utf-8" />';

echo '加密前 : '.$string .'<br/>';

echo '加密后 : '.$enc .'<br/>';

echo '解密后 : '.$dec;

?>

页面执行结果

结果1:

实用的PHP带公钥加密类分享(每次加密结果都不一样哦)

结果2:

实用的PHP带公钥加密类分享(每次加密结果都不一样哦)

由以上结果可以看到,每次加密产生的加密字符串都不一样,这是随机的。
解密的时候,需要使用加密时的公钥,否则无法解密。如你这边加密公钥使用‘qttc',解密的时候,也需要使用这个'qttc'作为公钥去解密,否则无法解密。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 实用的PHP带公钥加密类分享(每次加密结果都不一样哦) https://www.kuaiidc.com/104543.html

相关文章

发表评论
暂无评论