Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

非对称加密的解密php(php对称加密和非对称加密)

作者:战天独尊   发布日期:2025-03-12   浏览:857

非对称加密的解密在PHP中可以使用openssl扩展来实现。下面是一个示例代码:

<?php
// 使用非对称加密算法生成公钥和私钥
$config = array(
    "private_key_bits" => 1024,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);
openssl_pkey_export($res, $privateKey);
$publicKey = openssl_pkey_get_details($res)['key'];

// 要加密的数据
$data = "Hello, World!";

// 使用公钥进行加密
openssl_public_encrypt($data, $encrypted, $publicKey);

// 使用私钥进行解密
openssl_private_decrypt($encrypted, $decrypted, $privateKey);

echo "原始数据:".$data."\n";
echo "解密后的数据:".$decrypted."\n";
?>

上述代码中,首先使用openssl_pkey_new函数生成一个非对称加密算法的公钥和私钥。然后使用openssl_public_encrypt函数使用公钥对数据进行加密,得到加密后的数据$encrypted。最后使用openssl_private_decrypt函数使用私钥对加密后的数据进行解密,得到解密后的数据$decrypted。

需要注意的是,非对称加密算法的加密和解密使用的是不同的密钥。加密使用公钥,解密使用私钥。因此,在实际使用中,需要将私钥保密,只将公钥公开给其他人使用。

对称加密的解密在PHP中可以使用mcrypt扩展或openssl扩展来实现。这里以openssl扩展为例,示例代码如下:

<?php
// 要加密的数据
$data = "Hello, World!";

// 密钥
$key = "1234567890123456";

// 加密算法
$algorithm = "AES-128-ECB";

// 使用密钥和算法进行加密
$encrypted = openssl_encrypt($data, $algorithm, $key, OPENSSL_RAW_DATA);

// 解密
$decrypted = openssl_decrypt($encrypted, $algorithm, $key, OPENSSL_RAW_DATA);

echo "原始数据:".$data."\n";
echo "解密后的数据:".$decrypted."\n";
?>

上述代码中,使用openssl_encrypt函数使用密钥和算法对数据进行加密,得到加密后的数据$encrypted。然后使用openssl_decrypt函数使用密钥和算法对加密后的数据进行解密,得到解密后的数据$decrypted。

需要注意的是,对称加密算法的加密和解密使用的是相同的密钥。因此,在实际使用中,需要将密钥保密,只将加密后的数据传输给其他人进行解密。

上一篇:php 转时间戳在线

下一篇:查看网页的php代码(php查看当前打开网页源代码)

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站