欢迎光临 Rick 's BLOG
日志首页  | C# .Net编程  | 原创作品  | 生活点滴  | C\C++相关  | 多媒体相关※ERMP  | VB相关  | 其它运维与编程  |  留言簿
为什么 CodeIgniter4从4.20开始至少使用 PHP 7.4 群晖nas自带nginx手动修改配置增加网站或者反向代理服务
未知  PHP处理常见的加解密算法
[ 发布日期:11个月前 (12-29) ]   [ 来自:本站原创 ] [分类:其它运维与编程]
对称加密算法

AES(Advanced Encryption Standard,高级加密标准):是Rijndael加密法的一个子集,是现在全球使用最广的加密标准。

DES(Data Encryption Standard,数据加密标准):曾是十分流行的加密算法,但现在已被一般认为不再安全。

Triple DES:DES的更安全版本,通过将DES加密进行三次实现。

Blowfish:一种速度快的加密算法,因其算法公开且未被破解,所以很受欢迎。

非对称加密算法

RSA:一种非常流行的公钥算法,广泛应用在电子商务等领域。

DSA(Digital Signature Algorithm,数字签名算法):另一种广泛使用的公钥算法,通常用于数字签名。

ECC(Elliptic Curve Cryptography,椭圆曲线密码学):提供比RSA和DSA同等安全级别的更小的密钥。

散列函数

MD5:广泛用于密码存储等场景,但因易受彩虹表攻击,现在不再推荐使用。

SHA(Secure Hash Algorithm,安全散列算法):包括了很多算法标准,如SHA1、SHA256等,此类算法构建的哈希函数被广泛应用

AES加密/解密:

[复制到剪贴板]


// AES 加密
function aes_encrypt($data$key) {
    
$method "AES-256-CBC";
    
$ivLength openssl_cipher_iv_length($method);
    
$iv openssl_random_pseudo_bytes($ivLength);
    
$encrypted openssl_encrypt($data$method$keyOPENSSL_RAW_DATA$iv);
    return 
base64_encode($iv $encrypted);
}

// AES 解密
function aes_decrypt($data$key) {
    
$method "AES-256-CBC";
    
$ivLength openssl_cipher_iv_length($method);
    
$data base64_decode($data);
    
$iv substr($data0$ivLength);
    
$encrypted substr($data$ivLength);
    return 
openssl_decrypt($encrypted$method$keyOPENSSL_RAW_DATA$iv);




DES加密/解密:

[复制到剪贴板]


// DES 加密
function des_encrypt($data$key) {
    
$data openssl_encrypt($data'DES-EDE3'$key0);
    return 
base64_encode($data);
}

// DES 解密
function des_decrypt($data$key) {
    
$data base64_decode($data);
    return 
openssl_decrypt($data'DES-EDE3'$key0);




RSA 加密/解密:
[复制到剪贴板]

$rsa = new \phpseclib\Crypt\RSA();
 
// RSA 生成新的密钥对
$keys $rsa->createKey();

$privatekey $keys['privatekey'];
$publickey $keys['publickey'];

$plaintext 'text to be encrypted';

// 加密
$rsa->loadKey($publickey);
$ciphertext $rsa->encrypt($plaintext);

// 解密
$rsa->loadKey($privatekey);
$decrypted $rsa->decrypt($ciphertext);

echo 
$decrypted;  



DSA 签名/验证:
[复制到剪贴板]

$dsa = new \phpseclib\Crypt\DSA();

// DSA 生成新的密钥对
$keys $dsa->createKey();

$privatekey $keys['privatekey'];
$publickey $keys['publickey'];

$data 'data to be signed';

// 签名
$dsa->loadKey($privatekey);
$signature $dsa->sign($data);

// 验证签名
$dsa->loadKey($publickey);
$result $dsa->verify($data$signature);

echo 
$result 'verified' 'unverified'



散列函数加密(MD5/SHA-256)
[复制到剪贴板]

$text "Hello, World!";
$hash md5($text);   
echo 
$hash;

$hash hash('sha256'$text);   
echo 
$hash



专业加密算法库 php-encryption-2.4.0.zip

引用通告地址 (0):
复制引用地址https://www.rickw.cn/trackback/326
复制引用地址https://www.rickw.cn/trackback/326/GBK
[ 分类:其它运维与编程  | 查看:1361 ]

暂时没有评论,快来发表一个评论吧。
发表评论
作者:   用户:[访客] 
评论:

表  情
禁止表情 | 禁止UBB | 禁止图片 | 识别链接
对不起,你没有权限上传附件!
验证:
 
PoweredBy R-Blog V1.00 © 2004-2024 WWW.RICKW.CN, Processed in second(s) , 7 queries    京ICP备17058477号-5