PHP实现加密的几种方式介绍

2023-12-13php编程
50

PHP实现加密的几种方式介绍

在Web应用程序中,数据的安全性一直是非常重要的问题。为了确保数据的安全性,很多应用程序都会使用加密技术来保护数据。PHP提供了多种加密技术,本文将介绍几种常用的加密方式以及它们的用途和示例。

哈希算法加密

哈希算法是将任意长度的消息压缩成固定长度的一段代码的函数。这个函数可以将任意长度的消息计算为一个短而且固定的长度,称之为哈希值或摘要。因此,在消息发生改变时,相应的哈希值也会发生改变。常用的哈希算法有MD5、SHA1、SHA256等。哈希算法加密的主要用途是验证数据完整性,常用于密码存储。

示例

下面是一个使用MD5算法加密密码的示例:

$password = '123456';
$hashed_password = md5($password);
echo 'MD5 hashed password: ' . $hashed_password;

对称加密

对称加密是指使用同一密钥进行加密和解密的加密方式。由于口令是非常敏感的信息,使用对称加密来保护口令非常常见。PHP中常用的对称加密算法有AES和DES等。

示例

下面是一个使用AES算法加密和解密数据的示例:

//加密
$key = '1234567890123456';
$data = 'hello world';
$cipher = 'AES-128-CBC';
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($cipher));
$ciphertext = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv);
$ciphertext = $iv . $ciphertext;
echo 'Encrypted data: ' . base64_encode($ciphertext);

//解密
$ciphertext = base64_decode($ciphertext);
$iv_length = openssl_cipher_iv_length($cipher);
$iv = substr($ciphertext, 0, $iv_length);
$ciphertext = substr($ciphertext, $iv_length);
$plaintext = openssl_decrypt($ciphertext, $cipher, $key, OPENSSL_RAW_DATA, $iv);
echo 'Decrypted data: ' . $plaintext;

非对称加密

与对称加密相比,非对称加密算法使用公钥和私钥来加密和解密数据。发送方使用接受者的公钥来加密数据,接受者使用自己的私钥来解密数据。非对称加密算法主要用于数字签名。

示例

下面是一个使用RSA算法加密和解密数据的示例:

//生成公钥和私钥
$config = array(
    "digest_alg" => "sha512",
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);
openssl_pkey_export($res, $private_key);
$public_key = openssl_pkey_get_details($res);
$public_key = $public_key["key"];

//加密数据
$data = 'hello world';
$encrypted = '';
openssl_public_encrypt($data, $encrypted, $public_key);
echo 'Encrypted data: ' . base64_encode($encrypted);

//解密数据
$decrypted = '';
openssl_private_decrypt($encrypted, $decrypted, $private_key);
echo 'Decrypted data: ' . $decrypted;
The End

相关推荐

php实现多语言网站的思路和构想
我们在进行系统或者网站开发的时候,有需要多语言切换的功能。PHP作为一种常用的编程语言,可以很方便地实现多语言网站功能。本文将介绍如何使用PHP实现多语言网站功能,并提供相应的代码示例。 创建语言文件 首先,需要创建不同语言的语言文件。每个语言文件...
2025-08-20 php编程
83

php通过调用谷歌翻译API实现网站中英文翻译
我们在制作网站时候,要实现中英文双语网站,通过调用api方式实现文章内容自动翻译,这个要怎么操作呢?以调用谷歌翻译api实现翻译。 获取谷歌翻译秘钥 我们需要到Google Cloud控制台创建一个项目,并启用Cloud Translation API。然后,生成一个API密钥,这个...
2025-08-20 php编程
200

PHP+HTML集成DeepSeek API,实现一个简单的聊天对话项目
PHP+HTML集成DeepSeek API,实现一个简单的聊天对话项目,最终实现效果如下: 准备工作 PHP环境 :确保你的开发环境中安装了PHP。 DeepSeek API密钥 :注册并获取DeepSeek API的访问密钥。 创建api调用接口 创建一个PHP脚本(api.php),用于调用DeepSeek API...
2025-03-31 php编程
100

PHP怎么删除系统中的文件和目录
我们在使用php编程时候,有时候需要删除系统中某个目录。在php中,删除目录是通过使用一些内置函数来完成的。本文将介绍如何使用php中的内置函数删除目录。 一、unlink()函数 PHP中的unlink()函数可以用于删除一个文件,而当用于删除目录时,它只能删除目录...
2025-02-21 php编程
184

js+php实现用户登录
一.ajax完成用户名异步检验 html代码: !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" title用户名是否存在/title/headbodyform action="" method="post" table tr td用户名/td tdinput type="text" name="username" placeholder="请输入用户名" cla...
2025-01-09 php编程
93

PHP如何使用session实现保存用户登录信息
session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。 使用session保存页面登录信息 1、数据库连接配置页面:connectvars.php ?php/...
2024-11-05 php编程
95