详尽分享记6种php加密解密方法

简介: 详尽分享记6种php加密解密方法

1.第一种

<?php

function encryptDecrypt($key, $string, $decrypt){

if($decrypt){

$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12");

return $decrypted;

}else{

$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));

return $encrypted;

}//代码效果参考:http://www.ezhiqi.com/zx/art_3160.html

}

//加密:"z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk="

echo encryptDecrypt('password', 'Helloweba欢迎您',0);

//解密:"Helloweba欢迎您"

echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);

?>

2.第二种

<?php

//加密函数

function lock_url($txt,$key='liiu'){

$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";

$nh = rand(0,64);

$ch = $chars【$nh】;

$mdKey = md5($key.$ch);

$mdKey = substr($mdKey,$nh%8, $nh%8+7);

$txt = base64_encode($txt);

$tmp = '';

$i=0;$j=0;$k = 0;

for ($i=0; $i[span style="color: rgba(0, 128, 128, 1)">strlen($txt); $i++) {

$k = $k == strlen($mdKey) ? 0 : $k;

$j = ($nh+strpos($chars,$txt【$i】)+ord($mdKey【$k++】))%64;

$tmp .= $chars【$j】;

}

return urlencode($ch.$tmp);

}

//解密函数

function unlock_url($txt,$key='liiu'){

$txt = urldecode($txt);

$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";

$ch = $txt【0】;

$nh = strpos($chars,$ch);

$mdKey = md5($key.$ch);

$mdKey = substr($mdKey,$nh%8, $nh%8+7);

$txt = substr($txt,1);

$tmp = '';

$i=0;$j=0; $k = 0;

for ($i=0; $i[span style="color: rgba(0, 128, 128, 1)">strlen($txt); $i++) {

$k = $k == strlen($mdKey) ? 0 : $k;

$j = strpos($chars,$txt【$i】)-$nh - ord($mdKey【$k++】);

while ($j<0) $j+=64;

$tmp .= $chars【$j】;

}

return base64_decode($tmp);

}

?>

3.第三种

<?php

//改进后的算法

//加密函数

function lock_url($txt,$key='str'){

$txt = $txt.$key;

$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";

$nh = rand(0,64);

$ch = $chars【$nh】;

$mdKey = md5($key.$ch);

$mdKey = substr($mdKey,$nh%8, $nh%8+7);

$txt = base64_encode($txt);

$tmp = '';

$i=0;$j=0;$k = 0;

for ($i=0; $i[span style="color: rgba(0, 128, 128, 1)">strlen($txt); $i++) {

$k = $k == strlen($mdKey) ? 0 : $k;

$j = ($nh+strpos($chars,$txt【$i】)+ord($mdKey【$k++】))%64;

$tmp .= $chars【$j】;

}

return urlencode(base64_encode($ch.$tmp));

}

//解密函数

function unlock_url($txt,$key='str'){

$txt = base64_decode(urldecode($txt));

$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";

$ch = $txt【0】;

$nh = strpos($chars,$ch);

$mdKey = md5($key.$ch);

$mdKey = substr($mdKey,$nh%8, $nh%8+7);

$txt = substr($txt,1);

$tmp = '';

$i=0;$j=0; $k = 0;

for ($i=0; $i[span style="color: rgba(0, 128, 128, 1)">strlen($txt); $i++) {

$k = $k == strlen($mdKey) ? 0 : $k;

$j = strpos($chars,$txt【$i】)-$nh - ord($mdKey【$k++】);

while ($j<0) $j+=64;

$tmp .= $chars【$j】;

}

return trim(base64_decode($tmp),$key);

}

?>

4.第四种

<?php

function passport_encrypt($txt, $key = 'liiu') {

srand((double)microtime() * 1000000);

$encrypt_key = md5(rand(0, 32000));

$ctr = 0;

$tmp = '';

for($i = 0;$i < strlen($txt); $i++) {

$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;

$tmp .= $encrypt_key【$ctr】.($txt【$i】 ^ $encrypt_key【$ctr++】);

}

return urlencode(base64_encode(passport_key($tmp, $key)));

}//代码效果参考:http://www.ezhiqi.com/bx/art_4413.html

function passport_decrypt($txt, $key = 'liiu') {

$txt = passport_key(base64_decode(urldecode($txt)), $key);

$tmp = '';

for($i = 0;$i < strlen($txt); $i++) {

$md5 = $txt【$i】;

$tmp .= $txt【++$i】 ^ $md5;

}

return $tmp;

}

function passport_key($txt, $encrypt_key) {

$encrypt_key = md5($encrypt_key);

$ctr = 0;

$tmp = '';

for($i = 0; $i < strlen($txt); $i++) {

$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;

$tmp .= $txt【$i】 ^ $encrypt_key【$ctr++】;

}

return $tmp;

}

$txt = "1";

$key = "testkey";

$encrypt = passport_encrypt($txt,$key);

$decrypt = passport_decrypt($encrypt,$key);

echo $encrypt."

";

echo $decrypt."

";

?>

5.第五种

<?php

//非常给力的authcode加密函数,Discuz!经典代码(带详解)

//函数authcode($string, $operation, $key, $expiry)中的$string:字符串,明文或密文;$operation:DECODE表示解密,其它表示加密;$key:密匙;$expiry:密文有效期。

function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {

// 动态密匙长度,相同的明文会生成不同密文就是依靠动态密匙

$ckey_length = 4;

// 密匙

$key = md5($key ? $key : $GLOBALS【'discuz_auth_key'】);

// 密匙a会参与加解密

$keya = md5(substr($key, 0, 16));

// 密匙b会用来做数据完整性验证

$keyb = md5(substr($key, 16, 16));

// 密匙c用于变化生成的密文

$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

// 参与运算的密匙

$cryptkey = $keya.md5($keya.$keyc<span style="c

相关文章
|
2天前
|
Java PHP 数据安全/隐私保护
php和Java配合 aes
php和Java配合 aes加密
11 1
|
14天前
|
JSON PHP 数据格式
蓝易云 - PHP用CURL发送Content-type为application/json的POST请求方法
在这段代码中,我们首先创建了一个包含我们要发送的数据的数组,并使用 `json_encode`函数将其转换为JSON格式。然后,我们初始化了一个cURL会话,并设置了一些选项,包括POST请求方法、要发送的数据、返回结果和HTTP头部信息。最后,我们执行了cURL请求并关闭了会话。
19 2
|
27天前
|
数据安全/隐私保护 算法 安全
数据加密有哪些方法?
【6月更文挑战第2天】数据加密有哪些方法?
16 3
|
13天前
|
算法 PHP 数据安全/隐私保护
PHP中的数据加密技术及应用
在Web开发中,数据安全始终是一个至关重要的问题。本文将介绍PHP中常用的数据加密技术,包括对称加密算法、非对称加密算法和哈希算法的原理和应用。通过深入了解这些加密技术,开发人员可以更好地保护用户数据和提高系统的安全性。
11 0
|
16天前
|
Web App开发 API PHP
PHP封装的不错的一个Curl方法
This is a PHP function named `teacher_curl` that wraps around the cURL library for making HTTP requests. The function initializes a cURL session, sets various options such as disabling SSL verification, sets headers, handles POST data
19 0
|
1月前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。
|
1月前
|
存储 安全 算法
【PHP开发专栏】PHP加密与解密技术
【4月更文挑战第29天】本文探讨了PHP中的加密解密技术,涵盖基本概念如对称加密(AES、DES)、非对称加密(RSA、DSA)和哈希函数(MD5、SHA)。PHP提供内置函数支持加密,如`openssl_encrypt`、`openssl_pkey_new`、`hash`和`password_hash`。文章强调了最佳实践,如使用安全密钥、密钥管理和HTTPS,并给出用户注册登录的加密实战示例。通过理解和应用这些技术,开发者能增强Web应用的数据安全性。
|
1月前
|
存储 SQL 缓存
记录如何用php做一个网站访问计数器的方法
创建简单网站访问计数器,可通过存储访问次数的文件或数据库。首先,创建`counter.txt`存储计数,然后在`counter.php`中编写PHP代码以读取、增加并显示计数,使用`flock`锁定文件避免并发问题。网页通过包含`counter.php`展示计数。对于高流量网站,推荐使用数据库确保原子性和并发处理能力,或利用缓存提升性能。注意,实际生产环境可能需更复杂技术防止作弊。
|
1月前
|
安全 PHP 开发工具
php代码加密 php-screw-plus
php代码加密 php-screw-plus
53 0
|
3天前
|
安全 算法 网络安全
数字堡垒之下:网络安全漏洞、加密技术与安全意识的三重奏
【6月更文挑战第25天】在数字化时代的交响乐中,网络安全扮演着不可或缺的角色。本文将深入探讨网络安全的三大支柱:网络漏洞的存在与影响、加密技术的演进与应用以及安全意识的培养与实践。通过分析这些关键要素,我们旨在为读者提供一套维护网络安全的实用指南,确保个人和组织在信息海洋中航行的安全。