三个超好用的PHP加密解密函数,貌似是discuz里的…使用这些加密解密的原因是因为有时自己的URL地址被人获取以后想破解你里面传值的内容就必须知道你的key,没有key,他应该要破了一阵子才能知道你URL里面的内容吧。
将它们打包成一个文件就叫fun.php吧
复制代码 代码如下:
<?php
function passport_encrypt($txt, $key) {
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 base64_encode(passport_key($tmp, $key));
}
function passport_decrypt($txt, $key) {
$txt = passport_key(base64_decode($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;
}
?>
以下是一些示例加深对这三个加密解密函数的理解
复制代码 代码如下:
//string.php
<?php
include “fun.php”;
$txt = “This is a test”;
$key = “testkey”;
$encrypt = passport_encrypt($txt,$key);
$decrypt = passport_decrypt($encrypt,$key);
echo $txt.”<br><hr>”;
echo $encrypt.”<br><hr>”;
echo $decrypt.”<br><hr>”;
?>
//array.php
<?php
include “fun.php”;
$array = array(
"a" => "1",
"b" => "2",
"c" => "3",
"d" => "4"
);
//serialize产生一个可存储的值,返回一个字符串,unserialize还原
$txt = serialize($array);
$key = “testkey”;
$encrypt = passport_encrypt($txt,$key);
$decrypt = passport_decrypt($encrypt,$key);
$decryptArray = unserialize($decrypt);
echo $txt.”<br><hr>”;
echo $encrypt.”<br><hr>”;
echo $decrypt.”<br><hr>”;
echo $decryptArray.”<br><hr>”;
?>
来源:http://bbs.php100.com/read-htm-tid-504795.html
相关推荐
在实际应用中,PB字符串加密和解密函数通常会结合使用,比如先使用非对称加密算法加密一个会话密钥,然后使用这个密钥执行对称加密来保护大量数据。这样的混合策略既保证了速度,又确保了安全性。 编写PB加密函数时...
共六种PHP加解密方法, 其中包含非常给力的authcode加密函数,...第六种 函数encrypt($string,$operation,$key)中$string:需要加密解密的字符串;$operation:判断是加密还是解密,E表示加密,D表示解密;$key:密匙。
总结,虽然SQL Server 2005本身并不提供内置的Base64加密解密功能,但通过创建自定义函数,我们可以实现类似的功能。需要注意的是,上述函数仅适用于简单场景,对于更复杂的需求,可能需要更完善的Base64编码解码...
“易飞用户加密解密”可能指的是易飞公司提供的一个针对用户数据进行加解密的服务或工具,如EFPASS.exe这个文件所示,它可能是一个执行程序,用于用户数据的安全管理。 三、加密算法 易飞用户加密解密可能采用了...
本文将深入探讨C#中常用的加密解密函数,包括JSON对象的操作、DES、RSA和SHA算法。 首先,我们来了解一下JSON(JavaScript Object Notation)对象操作。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
《超级加密解密 V1.3 - .Net源码 - C#》是一个专注于数据安全的软件项目,提供了高效且强大的加密与解密功能。本文将深入探讨该项目所涉及的几个核心知识点,包括加密解密的基本原理、.NET框架的应用以及C#编程语言...
本文将详细介绍两个经典的PHP加密解密函数:Discuz!的`authcode`函数和`encrypt()`函数。 首先,让我们深入理解`authcode`函数,这是一个在Discuz!论坛系统中广泛使用的加密函数,它具有高度的安全性和复杂性。`...
在Delphi编程环境中,加密和解密是两个关键...总之,Delphi提供了多种手段来实现加密解密,包括使用内置函数和第三方库。在实际应用中,选择合适的加密算法、正确管理密钥并遵循最佳安全实践,能够有效地保护数据安全。
总的来说,这个压缩包中的内容可能是关于如何在VBA中实现自定义的TXT文件读写及加密解密功能的代码示例,帮助开发者在处理敏感数据时增加安全性。通过学习和理解这些函数,开发者可以更好地控制和保护他们的文本数据...
加密和解密技术在此扮演着核心角色,确保信息的隐私和完整...总结,PHP提供了丰富的加密解密工具,开发者可以根据需求选择合适的方法。然而,无论采用何种加密手段,都应当遵循最佳实践,确保数据安全并遵守版权法规。
在Java环境下复现这些加密解密函数对于开发者来说具有重要意义,可以用于开发与Discuz对接的第三方应用或者进行数据迁移。 首先,让我们详细了解一下`Base64.java`。Base64是一种用64个字符(通常为ASCII字符集的一...
总之,PHP提供了一系列加密解密函数,如上述示例中的自定义函数,还有内置的例如 `openssl_encrypt` 和 `openssl_decrypt` 等。开发者可以根据需求选择合适的加密算法和函数,以保证数据在传输和存储时的安全性。在...
总的来说,“BAT批处理脚本-加密解密-解密.zip”是一个关于Windows批处理脚本实现文件加密解密的实例,它体现了批处理脚本在自动化和提升工作效率上的潜力。通过理解批处理脚本的基本原理和命令,用户可以创建自己的...
C语言作为基础的编程语言,虽然没有内置的加密库,但可以通过自定义算法或调用第三方库来实现加密解密功能。 C语言实现加密解密主要涉及以下几个知识点: 1. **基础算法**:常见的加密算法有 Caesar Cipher(凯撒...
《加密解密小玩具v0.6》是一款实用的加密解密软件,它集成了多种经典且常用的加密算法,如RSA、AES、BASE64、BASE32、RC4等,同时还提供了MD5和SHA系列的哈希加密功能。这款工具能够帮助用户快速对数据进行加密和...
虽然示例代码提供了一个简单的加密解密过程,但在实际应用中可能存在以下不足之处,需要进行改进: 1. **安全性提升**:由于仅仅采用了Base64编码,这种加密方式很容易被破解。为了提高安全性,建议采用更强大的...
在提供的aes_demo压缩包中,可能包含了示例代码、说明文档等内容,帮助开发者理解并实现这个加密解密过程。通过对这些资源的深入学习和实践,可以更好地理解和应用这个前端jQuery加密、后端PHP解密的方案。
这个"文件加密解密(完整项目)"提供了一个可以直接编译运行的解决方案,对于学习和实践C#文件加密技术具有很高的参考价值。通过理解和实践该项目,开发者可以深入理解加密解密原理,提升数据保护能力。
"java实现文件加密解密" Java 实现文件的加密与解密是指利用 Java 语言将资源文件(包括图片、动画等类型)进行简单的加密和解密。这种策略的原因和好处是将准备好的资源存储在云上,使用时通过网络进行读取即可,...
下面是一个简单的使用AES加密解密的Delphi代码示例: ```delphi uses System.Security.Cryptography, System.Classes; function EncryptString(const Input: string; Key: TBytes): TBytes; var AES: ...