`
willko
  • 浏览: 386611 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)

    博客分类:
  • php
阅读更多
// +----------------------------------------------------------------------+
// | Willko Framework                                                     |
// +----------------------------------------------------------------------+
// | Copyright (c) 2008-2009 Willko Cheng                                 |
// +----------------------------------------------------------------------+
// | Authors: Willko Cheng <willko@foxmail.com>                           |
// +----------------------------------------------------------------------+
// $string 明文 或 密文
// $isEncrypt 是否加密
// $key 密匙
// 采用SHA1生成密匙簿,超过300个字符使用ZLIB压缩
function dencrypt($string, $isEncrypt = true, $key = KEY_SPACE) {
	if (!isset($string{0}) || !isset($key{0})) {
		return false;
	}
	
	$dynKey = $isEncrypt ? hash('sha1', microtime(true)) : substr($string, 0, 40);
	$fixedKey = hash('sha1', $key);
	
	$dynKeyPart1 = substr($dynKey, 0, 20);
	$dynKeyPart2 = substr($dynKey, 20);
	$fixedKeyPart1 = substr($fixedKey, 0, 20);
	$fixedKeyPart2 = substr($fixedKey, 20);
	$key = hash('sha1', $dynKeyPart1 . $fixedKeyPart1 . $dynKeyPart2 . $fixedKeyPart2);
	
	$string = $isEncrypt ? $fixedKeyPart1 . $string . $dynKeyPart2 : (isset($string{339}) ? gzuncompress(base64_decode(substr($string, 40))) : base64_decode(substr($string, 40)));
	
	$n = 0;
	$result = '';
	$len = strlen($string);
	
	for ($n = 0; $n < $len; $n++) {
		$result .= chr(ord($string{$n}) ^ ord($key{$n % 40}));
	}
	return $isEncrypt ? $dynKey . str_replace('=', '', base64_encode($n > 299 ? gzcompress($result) : $result)) : substr($result, 20, -20);
}
1
0
分享到:
评论

相关推荐

    么下么鱼密码

    相关博文 PHP加密解密类(密文只有大小写字母和数字),支持中文加密 解密目前DEZEND工具不能够解密的zend加密php...PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文) paip.PHP zend解密—以SHOPEX4.8.4为例

    RSA加密/解密实验

    **RSA加密/解密实验** RSA加密算法是一种非对称加密技术,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这种加密方式的关键在于一对公钥和私钥,其中公钥可以公开,而私钥必须保密。在RSA...

    姬小兵的加密/解密小程序.aps

    除了基础的加密解密功能,该程序可能还包括一些额外的安全特性,如消息认证码(MAC)和哈希函数,用于验证数据的完整性和真实性。MAC结合了加密和哈希函数,可以检测数据是否在传输过程中被篡改。哈希函数如MD5或SHA...

    PHP基于密钥的加密解密函数

    本主题将深入探讨PHP中基于密钥的加密解密函数,帮助你理解如何使用它们来确保数据的安全性。 1. **加密的基本概念** - 加密是一种将明文数据转化为看似随机的密文的过程,目的是保护信息不被未经授权的人员读取。...

    风吟PHP Escape 加密/解密.rar

    "fy-escape"可能是包含实现风吟PHP Escape加密解密功能的PHP源代码文件。通过查看和分析这些源代码,我们可以深入理解加密和解密的具体实现细节,包括使用的加密算法、密钥管理策略以及预处理和后处理的步骤。 总之...

    AES加密/解密源码,可在VC6下使用

    `AESextend.cpp`可能包含了密钥扩展的实现,`AES.cpp`则可能实现了AES的加密和解密函数。`实例.cpp`应该是示例代码,展示了如何调用这些函数进行实际的加密和解密操作。 在`实例.cpp`中,你可以找到如何初始化AES上...

    php中加密解密字符串函数类.zip

    这个"php中加密解密字符串函数类.zip"压缩包提供了一个专门用于处理字符串加密解密的类库,使得开发者能够更加方便地实现这一功能。以下是对这个类库的详细介绍: 首先,我们来了解一下加密和解密的基本概念。加密...

    文件加密/解密的例子(5KB)...

    文件加密是保护数据安全的重要手段,通过加密,原始数据(明文)被转换成看似随机的、无法理解的形式(密文),只有拥有正确密钥的人才能将其解密回原始内容。这种技术广泛应用于存储和传输敏感信息,如个人数据、...

    又一个加密/解密字符串的例子(3KB)...

    4. 编写解密函数:对应的解密函数,接收密文字符串,返回明文字符串。 5. 应用函数:在窗体的事件处理代码中,可能有一个按钮触发加密或解密操作,将用户输入的字符串进行处理,并显示结果。 通过研究这个VB示例,...

    RSA加密/解密算法源码 C++类

    RSA加密/解密算法是一种非对称加密技术,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这种算法基于两个大素数的乘积和欧拉函数的性质,提供了一种在互联网上安全交换信息的方法。RSA的...

    古典密码通用加密/解密工具(axun)

    在这个领域,通用加密/解密工具如“axun”提供了一个平台,允许用户应用不同的古典密码算法来编码和解码信息。这款工具目前包含了三种特定的古典密码,但开发者计划在未来增加更多算法,以涵盖更广泛的密码学历史。 ...

    密文加密解密工具 加密文本的程序

    对于“密文加密解密工具”这个特定的程序,虽然没有提供具体信息,但我们可以假设它可能包含以下功能: - 文件/文件夹加密:允许用户选择需要加密的文件或整个文件夹。 - 快速加密:提供快捷方式,一键加密敏感信息...

    RSA加密/解密/数字签名算法实现

    总结,RSA加密/解密/数字签名算法的实现涉及到了大数运算、素数检测、欧拉函数、扩展欧几里得算法等多个数学概念。在本地测试成功后,确保了算法的正确性。对于任何疑问或交流,都可以进一步探讨以深化对RSA的理解。...

    PHP数字自定义加密与解密

    在thinkPHP框架中,你可以自定义加密解密类来扩展其默认的安全机制。以下是一个简单的AES加密解密示例: ```php class MyCrypt { private $key; private $iv; public function __construct($key, $iv) { $...

    AES实现加密和解密的动态库

    这个动态库提供了AES加密和解密的功能,对于理解和应用AES技术具有重要意义。 AES的全称为高级加密标准,是由NIST(美国国家标准与技术研究院)在2001年正式采纳的,用于替代原先的DES(数据加密标准)。AES采用了...

    delphi加密解密函数源码

    本文将深入探讨Delphi中的加密解密函数源码,以及如何利用它们来实现安全的数据处理。 首先,理解加密的基本原理至关重要。加密是将明文(可读数据)转化为密文(不可读数据)的过程,而解密则是将密文还原为明文的...

    六个经典的PHP加密解密算法

    共六种PHP加解密方法, 其中包含非常给力的authcode加密函数,...第六种 函数encrypt($string,$operation,$key)中$string:需要加密解密的字符串;$operation:判断是加密还是解密,E表示加密,D表示解密;$key:密匙。

    功能强大的php加密解密类

    这个"功能强大的php加密解密类"提供了一种高效且安全的方式来处理这些任务。下面,我们将详细探讨加密解密的基本概念、PHP中的加密库以及如何使用自定义类进行加密解密操作。 1. **加密解密基础** 加密是一种将...

Global site tag (gtag.js) - Google Analytics