本文实例讲述了PHP的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
|
<?php
class MCrypt {
private $hex_iv = '00000000000000000000000000000000' ; # converted JAVA byte code in to HEX and placed it here
private $key = 'U1MjU1M0FDOUZ.Qz' ; #Same as in JAVA
function __construct() {
$this ->key = hash( 'sha256' , $this ->key, true);
//echo $this->key.'<br/>';
}
function encrypt( $str ) {
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '' , MCRYPT_MODE_CBC, '' );
mcrypt_generic_init( $td , $this ->key, $this ->hexToStr( $this ->hex_iv));
$block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$pad = $block - ( strlen ( $str ) % $block );
$str .= str_repeat ( chr ( $pad ), $pad );
$encrypted = mcrypt_generic( $td , $str );
mcrypt_generic_deinit( $td );
mcrypt_module_close( $td );
return base64_encode ( $encrypted );
}
function decrypt( $code ) {
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '' , MCRYPT_MODE_CBC, '' );
mcrypt_generic_init( $td , $this ->key, $this ->hexToStr( $this ->hex_iv));
$str = mdecrypt_generic( $td , base64_decode ( $code ));
$block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
mcrypt_generic_deinit( $td );
mcrypt_module_close( $td );
return $this ->strippadding( $str );
}
/*
For PKCS7 padding
*/
private function addpadding( $string , $blocksize = 16) {
$len = strlen ( $string );
$pad = $blocksize - ( $len % $blocksize );
$string .= str_repeat ( chr ( $pad ), $pad );
return $string ;
}
private function strippadding( $string ) {
$slast = ord( substr ( $string , -1));
$slastc = chr ( $slast );
$pcheck = substr ( $string , - $slast );
if (preg_match( "/$slastc{" . $slast . "}/" , $string )) {
$string = substr ( $string , 0, strlen ( $string ) - $slast );
return $string ;
} else {
return false;
}
}
function hexToStr( $hex )
{
$string = '' ;
for ( $i =0; $i < strlen ( $hex )-1; $i +=2)
{
$string .= chr (hexdec( $hex [ $i ]. $hex [ $i +1]));
}
return $string ;
}
}
$encryption = new MCrypt();
echo $encryption ->encrypt( '123456' ) . "<br/>" ;
echo $encryption ->decrypt( 'tpyxISJ83dqEs3uw8bN/+w==' );
?>
|
希望本文所述对大家PHP程序设计有所帮助。
相关文章
猜你喜欢
- 64M VPS建站:怎样优化以提高网站加载速度? 2025-06-10
- 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-25 66
-
2025-06-04 19
-
2025-05-27 53
-
2025-05-29 79
-
2025-05-27 99
热门评论