php之Aes加密案例讲解

2025-05-29 0 82

在项目中,尤其是pc端的时候,我们在用户登录后会给前端返回一个标识,来判断用户是否登录,这个标识大多数都是用户的id

php之Aes加密案例讲解

但是这里存在很大的弊端,那就是这个值可以修改,假如说把我这个值一修改,我就可以获取到修改的用户的所有信息,可怕吧!

那么今天就使用aes进行加密处理一下

?

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

68

69

70
<?php

namespace app\\api\\controller;

/**

* aes 加密 解密类库

* class aes

* @package app\\common\\lib

*/

class aes {

private $key = null;

/**

*

* @param $key 密钥

* @return string

*/

public function __construct() {

// 需要小伙伴在配置文件app.php中定义aeskey

$this->key = '1234567891112121';

}

/**

* 加密

* @param string input 加密的字符串

* @param string key 解密的key

* @return hexstring

*/

public function encrypt($input = '') {

$size = mcrypt_get_block_size(mcrypt_rijndael_128, mcrypt_mode_ecb);

$input = $this->pkcs5_pad($input, $size);

$td = mcrypt_module_open(mcrypt_rijndael_128, '', mcrypt_mode_ecb, '');

$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), mcrypt_rand);

mcrypt_generic_init($td, $this->key, $iv);

$data = mcrypt_generic($td, $input);

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

$data = base64_encode($data);

return $data;

}

/**

* 填充方式 pkcs5

* @param string text 原始字符串

* @param string blocksize 加密长度

* @return string

*/

private function pkcs5_pad($text, $blocksize) {

$pad = $blocksize - (strlen($text) % $blocksize);

return $text . str_repeat(chr($pad), $pad);

}

/**

* 解密

* @param string input 解密的字符串

* @param string key 解密的key

* @return string

*/

public function decrypt($sstr) {

$decrypted= mcrypt_decrypt(mcrypt_rijndael_128,$this->key,base64_decode($sstr), mcrypt_mode_ecb);

$dec_s = strlen($decrypted);

$padding = ord($decrypted[$dec_s-1]);

$decrypted = substr($decrypted, 0, -$padding);

return $decrypted;

}

}

这是一个aes的工具类。注意一下,这个值需要我们来自改,而且是16位

php之Aes加密案例讲解

这样我们用户在登录时会把id返回给前端

首先在控制器引入

php之Aes加密案例讲解

然后进行实例化

php之Aes加密案例讲解

用户在登录成功后我们把这个值给加密返回前端

php之Aes加密案例讲解

这个u_id就是加密后的值

php之Aes加密案例讲解

然后我们在comment文件设置这俩个方法,这俩个方法是对参数进行统一处理,那么我么那就在这里判断一下,凡是用到用户id的接口把用户id进行解密即可

php之Aes加密案例讲解

到此这篇关于php之aes加密案例讲解的文章就介绍到这了,更多相关php之aes加密内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/fangkang7/article/details/94607123

收藏 (0) 打赏

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

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

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

快网idc优惠网 建站教程 php之Aes加密案例讲解 https://www.kuaiidc.com/89943.html

相关文章

发表评论
暂无评论