前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP实现的AES双向加密解密功能示例【128位】

PHP实现的AES双向加密解密功能示例【128位】

作者头像
用户2323866
修改2021-07-13 11:35:56
1.2K0
修改2021-07-13 11:35:56
举报
文章被收录于专栏:技术派技术派

本文实例讲述了PHP实现的AES双向加密解密功能。分享给大家供大家参考,具体如下:

<?php

/*

/**

用法:

Security::encrypt($str,$key);

Security::decrypt($str,$key);

*/

class Security {

public static function encrypt($input, $key) {

$size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);

$input = Security::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, $key, $iv);

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

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

$data = base64_encode($data);

return $data;

}

private static function pkcs5_pad ($text, $blocksize) {

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

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

}

public static function decrypt($sStr, $sKey) {

$decrypted= mcrypt_decrypt(

MCRYPT_RIJNDAEL_128,

$sKey,

base64_decod/

/e($sStr),

MCRYPT_MODE_ECB

);

$dec_s = strlen($decrypted);

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

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

return $decrypted;

}

}

//用法示例:

$str = "www.jb51.net";

$key = "123456";

echo "原始字符串:".$str."<br/>";

$pwdstr = Security::encrypt($str,$key);

echo "加密后:".$pwdstr."<br/>";

$destr = Security::decrypt($pwdstr,$key);

echo "解密结果:".$destr;

?>

运行结果:

原始字符串:www.jb51.net

加密后:O0vbyikeZRVnXueCodfSFw==

解密结果:www.jb51.net

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含AES、DES、RC4等):

MD5在线加密工具:

在线散列/哈希算法加密工具:

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:

在线sha1/sha224/sha256/sha384/sha512加密工具:

希望本文所述对大家PHP程序设计有所帮助。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档