PHP中提供了多种加密方式,如MD5、SHA1、base64等,这些加密方法都是单向加密,无法解密,只能通过比对加密后的结果进行验证。
如果需要进行双向加密,可以使用PHP的openssl扩展库,提供了AES、DES、RSA等加密方式。
//使用openssl进行AES加密
$key = '1234567891234567'; //密钥
$plaintext = 'hello world'; //待加密的明文
$ciphertext = openssl_encrypt($plaintext, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, '1234567891234567');
echo base64_encode($ciphertext); //加密后的密文
在PHP中进行信息安全保护需要注意以下几点:
//过滤用户输入
$name = htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8');
//限制上传文件类型
$allowed_types = array('image/png', 'image/jpeg', 'image/gif');
if(!in_array($_FILES['file']['type'], $allowed_types)){
die('文件格式不正确');
}
//设置session有效期
session_start();
ini_set('session.gc_maxlifetime', 3600); //设置session有效期为1小时
session_set_cookie_params(3600); //设置session cookie有效期为1小时
//密码哈希加密
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);