⑴ php的openssl_sign($data,$sign,$private_key)这个函数的源码是什么
这个是打开https的访问所用的到的函数
⑵ php源码怎么加密
一、无需任何PHP扩展的加密
此类加密的代表有 威盾PHP加密专家、PHP在线加密平台、PHP神盾 等。
此类加密都是以eval函数为核心,辅以各式各样的字符串混淆和各种小技巧,来达到加密目的(更准确的说,应该算是混淆)。下面以一个简单的hello world为例来说明此类加密的大体过程。
<?php
echo "hello world";
首先 ,我们把这段代码变为通过eval执行的
<?php
eval('echo "hello world";');
然后 ,我们再进行一些转换,比如说base64编码
<?php
eval(base64_decode('ZWNobyAiaGVsbG8gd29ybGQiOw=='));
就这样子,我们的第一个加密过的php代码新鲜出炉了。。。
上面这个例子非常非常简单,基本上任何有一点php语言基础甚至别的语言基础的人都能轻松的看懂并解密。因此,我们需要一些方法让这个加密至少看上去不是那么简单。
二、同时采用多种编码函数
除了刚才提到的base64,php还有许多内置的编码函数,例如urlencode、gzcompress等。把这些函数混合使用可以提高解密的复杂度(不是难度),此外还可以使用strtr来制定自己的编码规则。 使用变量来代替函数名 使用特定字符来命名变量
这儿所说的特定字符是一些极其相似的字符,如I和1,0和O。试想一下满屏都是O和0组成的变量,并且每一个的名字长度都在10个字符以上。。。 判断文件自身是否被修改
这个功能看似容易,对文件做一下摘要再进行下对比即可知道是否被修改了,但是如何才能在文件内把摘要嵌入进去呢?我没有找到完美的方案,但一个变通的方案还是很容易的。。。
<?php
$code = substr(file_get_contents(__FILE__), 0, -32);
$hash = substr(file_get_contents(__FILE__), -32);
if (md5($code) !== $hash) {
exit('file edited');
}
当然,你可以把这个校验字符串放在别的位置来提高破解的难度。有了这个,别人想破解你的程序可就得多费一点功夫了。。。
既然知道了原理,那解密自然也就非常简单了,总体来说就三步:
把eval替换为输出,比如echo 根据编码规则把字符串还原 如果文件未解密完全,从第一步开始继续
当然,实际上的解密过程并没有这么简单,比如说如果加密的时候使用了gzcompress,那得到的数据将会包含一些二进制数据,而采用一般的文本编辑器打开时这些数据都会显示为乱码,并且在保存时丢失部分数据。解决方法很简单也很麻烦,那就是使用二进制(16进制)方式打开、修改和保存。
⑶ 求一段php源码,如果用手机访问就自动跳转至手机页面,如果是web访问就自动跳转至web页面
在这个PHP代码段中,首先定义了两个函数,用于检测用户访问设备类型。第一个函数CheckSubstrs通过查找文本中是否包含给定的子字符串行表来判断。第二个函数isMobile则通过调用CheckSubstrs来判断用户代理字符串中是否包含移动设备的相关标志。
移动设备标志列表中包括了各种移动操作系统、移动浏览器以及特定的移动设备标识。这些标识可以用来识别手机、平板电脑等移动设备。代码通过检查这些标志来确定用户的设备类型。
在主逻辑部分,代码首先调用了isMobile函数来判断当前访问设备是否为移动设备。如果是移动设备,那么将输出“手机登录m.php.com”;否则,将输出“电脑登录www.php.com”。这样的设计可以实现根据访问设备类型自动跳转至相应页面的效果。
这段代码的主要功能是基于用户代理字符串来判断访问设备类型,并根据判断结果输出不同的内容。通过这种方式,可以实现自动跳转到手机或电脑版本页面的功能,提升用户体验。
此代码段采用了一种较为传统的方法来检测移动设备,即通过用户代理字符串中的特定标识来判断。这种方法简单且有效,但在面对日益复杂的移动设备环境时,可能会有一些局限性。例如,随着移动设备的多样化以及用户代理字符串的不断更新,这种基于固定标识的检测方法可能需要定期更新以保持准确性。
在实际应用中,开发者可能还需要考虑其他因素,如屏幕尺寸、分辨率等,以提供更加个性化的用户体验。此外,随着响应式设计的流行,直接通过自动跳转来区分设备类型的方式可能逐渐被更为灵活的设计方案所取代。
总的来说,这段代码实现了一个基本的设备检测功能,能够满足大多数情况下的需求。但对于更复杂的场景,开发者可能需要采用更为高级的技术手段,如使用javaScript结合服务器端逻辑来实现更加智能的设备识别与响应。
⑷ php 怎把上传的rar zip文件 自动解压 用的是哪个函数 求高手指点 告急 谢谢 求源代码
/**
* PHP在线压缩/解压实例
*/
date_default_timezone_set('prc');
$zip = new engine_compress_decompress();
if (isset($_POST))
{
$sourcePath = ''; //默认位置
if (isset($_FILES['upfile'])) //上传文件
{
$stmp = $zip->fileUpload('upfile');
$sourcePath = $stmp['sourcefile'];
$upfileError = $stmp['error'];
}
elseif (isset($_POST['inputfile'])) //输入目录或者文件
{
$sourcePath = $_POST['inputfile'];
}
elseif (isset($_POST['decompresssourcefiles'])) //解压缩提交
{
$isDecompress = $zip->decompress($_POST['decompresssourcefiles'], $_POST['topath']);
if (!empty($isDecompress['filelist']))
{
$href = '<script type="text/javascript" language="javascript">window.location.href=\'#decompress\'</script>';
}
}
$fileList = $zip->fileArray($sourcePath); //解压缩文件列表
if (isset($_POST['compressinputfileorfolder'])) //压缩文件目录或者文件输入
{
$sourcePath = $_POST['compressinputfileorfolder'];
$href = '<script type="text/javascript" language="javascript">window.location.href=\'#compress\'</script>';
$compressFilelist = $zip->compressFileArray($sourcePath); //压缩文件列表
}
elseif ((isset($_POST['selectcompressfilelist'])) && (isset($_POST['compresssavefilename'])))
{
$compressFiles = $zip->compress($_POST['selectcompressfilelist'], $_POST['compresssavefilename']); //真实检测
$isCompress = $zip->CompileZipFile($compressFiles, $zip->savePath, 'all');
if (!empty($isCompress))
{
$href = '<script type="text/javascript" language="javascript">window.location.href=\'#compress\'</script>';
}
}
}
⑸ php 判断数组里是否有某个值
可以直接使用php内置函数in_array()来实现判断。php in_array 函数用于检查数组中是否存在某个值,如果存在,则返回true,否则返回false。
大致的编程思路:
1、所用到的函数:php in_array() 检查数组中是否存在某个值;in_array检查数组中是否存在某个值。
2、基本语法:bool in_array(mixed $needle,array $haystack,bool $strict=FALSE)
3、基本用法:在 haystack 中搜索 needle。
needle 是必需的。因为规定要在数组搜索的值。如果是字符串,则比较是区分大小写的。
haystack 是必需的。因为规定要搜索的数组。
(5)php内置函数源码扩展阅读:
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。
PHP其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。