php字符串长度

PHP中md5()函数绕过

为君一笑 提交于 2019-11-27 19:39:03
PHP md5()函数的简单绕过方法,该篇作为学习笔记简单记录一下。 例题 例题链接: http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php 主要代码段: 1 $password=$_POST['password']; 2 $sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5($password,true)."'"; 3 $result=mysqli_query($link,$sql); 4 if(mysqli_num_rows($result)>0){ 5 echo 'flag is :'.$flag; 6 } 7 else{ 8 echo '密码错误!'; 9 } PHP md5()函数 引用自 https://www.w3school.com.cn/php/func_string_md5.asp md5() 函数计算字符串的 MD5 散列。 md5() 函数使用 RSA 数据安全,包括 MD5 报文摘要算法。 来自 RFC 1321 的解释 - MD5 报文摘要算法:MD5 报文摘要算法将任意长度的信息作为输入值,并将其换算成一个 128 位长度的"指纹信息"或"报文摘要"值来代表这个输入值,并以换算后的值作为结果。MD5

【译】PHP 内核 — 字符串管理

女生的网名这么多〃 提交于 2019-11-27 16:11:56
【译】PHP 内核 — 字符串管理 (Strings management: zend_string 译文) 原文地址: http://www.phpinternalsbook.com/php7/internal_types/strings/zend_strings.html 原文仓库: https://github.com/phpinternalsbook/PHP-Internals-Book 原文作者: phpinternalsbook 译文出自: https://github.com/suhanyujie 本文永久链接: 译者: suhanyujie 翻译不当之处,还请指出,谢谢! 字符串管理:zend_string 任何程序都需要管理字符串。在这里,我们将详细介绍一个适合 PHP 需要的定制解决方案: zend_string 。每次 PHP 需要处理字符串时,都会使用 zend_string 结构体。这个结构体是 C 语言的 char * 类型包装后的结果。 它增加了内存管理功能,这样的话,同一个字符串可以在多个地方共享,而不需要复制它。另外,有些字符串是 “interned” 的,它们被持久化的分配内存并由内存管理器进行特殊管理的,这样可以实现在多个请求之间进行复用。那些字符串在后续会被 Zend 内存管理器 持久化分配。 结构体和访问宏 这里简单地展示 zend

php 获取随机字符串

和自甴很熟 提交于 2019-11-27 15:37:05
/** * 获取随机字符串 * @param int $randLength 长度 * @param int $addtime 是否加入时间戳 * @param int $format 0:只字符 1:字符和数字 2:只数字 * @return string */ function getRandStr($randLength=6, $addtime=1, $format=0) { switch ($format) { case '0': $chars='abcdefghijklmnopqrstuvwxyz'; break; case '1': $chars='abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQEST123456789'; break; case '2': $chars='0123456789'; break; default: $chars='abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQEST123456789'; break; } $len=strlen($chars); $randStr=''; for ($i=0;$i<$randLength;$i++) { $randStr.=$chars[rand(0, $len-1)]; } $tokenvalue=$randStr; if (

PHP字符串常用函数

最后都变了- 提交于 2019-11-27 13:08:40
数组、字符串和数据库是我们函数里面最、最、最常用的三类函数,数组和数据库我们现在还没有讲到,等讲到的时候我们再来和大家细说。 当然PHP的字符串函数也有很多。我们最常使用的两个系列的字符串: 1.单字节字符串处理函数 2.多字节字符串处理函数 3.字符串编码转换函数 我们来说说为什么要学这么多函数: 1.我们学的是中文,是双字节或者三字节的。老外的函数只能处理英文和数字这些单字节的字符串处理不鸟中文。达不到我们的功能需求 2.有的时候需要做不同字符编码间的转换,例如:把GBK的转为UTF-8 3.英文这些字符在电脑里又是必须要处理的 PHP常用函数 中文主要用的是GBK和utf-8两种编码格式。 GBK和utf-8是两个不同的编码委员会对于汉字进行的编码的标准。 他们规定GBK是双字节,也就是一个汉字占用2Bytes。 utf-8是三字节,一个汉字占用三个字节长度的存储空间。 函数名 描述 实例 trim() 删除字符串两端的空格或其他预定义字符 "$str = "\r\nHello World!\r\n"; echo trim($str); rtrim() 删除字符串右边的空格或其他预定义字符 "$str = "Hello World!\n\n"; echo rtrim($str);" chop() rtrim()的别名 同上 ltrim() 删除字符串左边的空格或其他预定义字符

php面试题

一世执手 提交于 2019-11-27 09:42:10
文章转载自: http://www.pythonheidong.com/blog/article/2220/ php面试题 php 面试 最近一直在面试,所以总结了下常见的 PHP 面试题. PHP基础题目 安全对一套程序来说至关重要,请说说在开发中应该注意哪些安全机制? ①防远程提交; ②防SQL注入,对特殊代码进行过滤; ③防止注册机灌水,使用验证码; 在程序的开发中,如何提高程序的运行效率? ①优化SQL语句,查询语句中尽量不使用select *,用哪个字段查哪个字段;少用子查询可用表连接代替;少用模糊查询 ②数据表中创建索引 ③对程序中经常用到的数据生成缓存 现在编程中经常采取MVC三层结构,请问MVC分别指哪三层,有什么优点? MVC三层分别指:业务模型、视图、控制器,由控制器层调用模型处理数据,然后将数据映射到视图层进行显示,优点是: ①可以实现代码的重用性,避免产生代码冗余 ②M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式 对json数据格式的理解? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,json数据格式固定,可以被多种语言用作数据的传递 PHP中处理json格式的函数为json_decode( string $json [, bool $assoc ] ) ,接受一个

php面试题之五——PHP综合应用(高级部分)

▼魔方 西西 提交于 2019-11-27 05:37:53
文章转载自: http://www.pythonheidong.com/blog/article/2117/ 五、PHP综合应用 1.写出下列服务的用途和默认端口(新浪网技术部) ftp、ssh、http、telnet、https ftp:File Transfer Protocol,文件传输协议,是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输,其默认端口是21。 ssh:Secure Shell,安全外壳协议,建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,其默端口是22。 http:hypertext transport protocol,超文本传送协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议,其默认端口是80。 telnet:Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力,其默认端口是23。 https:Hypertext Transfer Protocol over Secure Socket Layer,是以安全为目标的HTTP通道,用于安全的HTTP数据传输,它的主要作用可以分为两种: 一种是建立一个信息安全通道,来保证数据传输的安全;

PHP WEB 引擎缓存加速优化

别等时光非礼了梦想. 提交于 2019-11-26 21:09:43
PHP 缓存加速器介绍 操作码缓存 请求一个 PHP 程序时,PHP 引擎会解析程序,并且将编译码作为特定操作码。这是要执行的代 码的一种二进制表示形式。随后,此操作码有 PHP 引擎执行并丢弃。操作码缓存将保存这个编 译后的操作码,并在下一次调用该页面时重用它,这就节省了重复编译的时间。 为了提高 PHP 引擎的执行效率,PHP 缓存加速器设计的目的是缓存 PHP 解析过的操作码,这样 同样的请求访问过来,PHP 引擎就不需要解析了。可以直接调用 PHP 操作码,就提高 WEB 服 务器的响应速度。从而提高了用户的访问体验。 一句话: PH P 加速器是一个为了提高 PH P 执行效率,从而缓存起 PH P 的操作码,这样 PH P 后面执行就 不用解析转换了,可以直接调用 PH P 操作码,这样速度上就提高了不少。 在 LAMP 环境中,使用的是 libphp5.so 响应并处理 PHP 程序的请求。 响应执行的流程大概如下: 1. Apache 接收客户 PHP 程序请求 2. Apache 将 PHP 程序请求传递给 libphp5.so(mod_php) 3. libphp5.so(mod_php)定位磁盘上的 PHP 文件,并加载到内存 4. libphp5.so(mod_php)编译源代码称为 opcode 树 5. libphp5.so(mod_php)执行