位置: 编程技术 - 正文

PHP实现加密文本文件并限制特定页面的存取的效果(php加密zend)

编辑:rootadmin

推荐整理分享PHP实现加密文本文件并限制特定页面的存取的效果(php加密zend),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php加密文件,php 加密字符串,php加密zend,php加密zend,php加密zend,php实现加密文本输入,php加密zend,php实现加密文本输入,内容如对您有帮助,希望把文章链接给更多的朋友!

文件的加密程序在站点上已经应用的很广泛了,这意味着要使用一个数据库来存储口令和用户名。具体如下:

一、 简介

尽管在一般情况下,你的网站往往相当简单以至它根本不要求使用数据库;但是在有些情况下,你的站点可能想限制对某些页面的存取。一般地,这意味着要使用一个数据库来存储口令和用户名。然而,你还有一个更容易的方法-尽管其安全性差了一点,但是它仅包含了极少的编码。

如果你在自己的Web应用程序中使用了数据库,那么你已经能够在某处存储口令和用户名,并且有一种方法可用来认证访问者。但是,当因你的站点的安全性或复杂性需要而无法保证使用数据库时,那该怎么办?可能有些时候你仅想要一些特别的人存取你的站点的某些页面或一些区域。为此,一种很简单的方式就是使用一个存储口令的文本文件,并且创建一个页面来提示访问者输入口令;如果口令与存储在该文本文件中的内容相匹配,那么允许该用户存取受限的页面;否则,在开始刷新页面之前显示一条适当的消息以禁止其存取。

为了进一步的安全起见,你还可以用哈希法来加密存储在文本文件中的口令,这样如果它的内容在某种程度上被发现,它还将会是很难被查明。所有这些都可以用PHP方法来构建,而且只需极少量的编码。

在正式开始前,你需要建立一个环境来测试和使用PHP;所以,你首先需要为PHP安装和配置一个Web服务器。由于Apache与PHP协同工作良好,并且易于安装和配置,因此我推荐使用这一方案。

接下来,你需要创建一个页面(类似下图)-它有一个文本框用于接收来自访问者的口令,还有一个submit按钮来把它发送到你的PHP文件。这既可以是一个新页面也可以是你的网站上的一个现有页面的一部分。象下面简单的代码块应该足够了:

二、 创建PHP主页

接下来,你需要创建完成实际工作的PHP主页。在一个文本编辑器中打开一个空白页面,然后以标准方式打开一个PHP块:

如我以前所提及的,PHP具有一套标准的函数和方法用来实现文件操作。其中,最为主要的几个是fopen(),fread()和fclose()函数。为了进行某种文件操作,我们需要先打开它,并且很明显,这是使用fopen()函数实现的;而且,我们必须指定如何操作文件;读文件,读文件是最普通的任务,但是另外一些额外标志可以用来告诉程序是把文件指针放在开始还是文件的结束,以及如果文件还不存在的话是否创建该文件。然而,在本例中,我们所需要做的是,打开包含口令字的文本文件并读取它。

然后,首先创建一个到指定文本文件路径的变量:

接下来,创建一个变量来存放文件指针:

你也可以使用die方法来结束该脚本,并且如果操作因某种原因失败的话将在屏幕上打印一条适当的消息。一旦打开文件,你需要读取它的内容,以便把它与以口令字形式输入的内容进行比较:

你应该设置一个变量来存放文件中的数据,并且调用fread()方法(它有两个参数:文件指针和文件长度)。你可能知道(也可能不知道)你的口令的长度。为了使将来的编程容易些(当口令字需要改变时),你可以使用filesize()方法来得到文件长度。一旦文件不再需要,立即关闭之:

PHP实现加密文本文件并限制特定页面的存取的效果(php加密zend)

三、 使用口令

为了使用输入到HTML表单中的口令,你需要得到它并把它存储到一个变量中。当我们使用POST方法来把用户输入的内容发送到PHP脚本时,我们可以使用$_POST来取得输入的口令:

然后,我们可以简单地把输入的口令字与存储的口令字进行比较并采取相应的措施:

第一个if语句处理一个空的$password变量以防止当输入框为空时,submit按钮被点击。如果用户输入的口令与存储的那个不匹配,那么第二个语句执行括号内的代码并且输出一条消息显示口令是错误的。最后,如果前两个条件都不满足,那么,该脚本认为口令一定是正确的并且把一个重定向头(header)发送到浏览器以打开示例中的HTML页面。

在此能够工作之前,你需要创建一个文本文件并且把它放到与该PHP文件相同的目录下。它需要包含你目前想要使用的以普通文本形式存储的口令,并且应该引用该PHP文件名。保存所有这些文件,然后在一个浏览器中打开该HTML页面,并用该表单进行试验。该页面应该如所设想的那样工作。

当你输入正确的口令时,如果你得到一个错误消息,其内容是:

"Warning: Cannot modify header information - headers already sent by (thepathtoyourphpfile)"

这意味着,你需要把位于你的Windows目录下的php.ini文件中的output-buffering设置为"on"。

四、 加密

现在,我们开始分析在前面提到的加密问题。PHP具有一些内置的MD5方法。这样以来,在把访问者输入的口令与存储的口令进行比较之前,我们可以很容易地使用这些函数来转换它。

MD5是一种单向哈希算法,这意味着口令可以仅用一种方向进行加密-从普通文本到加密文本,而以另外一种方向是不可能的。然而,这并不是就能使得它不可破解。这种加密容易被以暴力方式或者通过字典攻击加以破解,但是它仍然还是比较安全的。你可以把下列一行添加到$password变量的声明语句之后:

这样可以把一个输入到该文本框中的内容的加密版本保存到变量$md5password中。现在,你需要修改你的if语句,以便它把存储的口令与新的加密的口令加以比较:

如你所见,我们仅改变了语句的elseif部分中的变量。这是因为即使是一个空的输入变量也被哈希化为一个位值,因此$md5variable永远不可能为空,-即使在把任何文本输入到输入域之前点击submit按钮。

现在,所有你需要做的就是,找到你想存储在文本文件pass.txt中的该口令的哈希值。为此,你可以注释掉整个的if语句并且再加上一个echo语句以把加密的口令显示在屏幕上。然后,你还可以复制加密串并且把它保存到口令文件中。然而,你必须记住,在使用该脚本之前,取消注释if语句并且删除echo调用。

就本文所讨论的方法而言,上面的脚本框架所提供的已经足够了。另外,本文所讨论的测试文件,尽管非常基本,但是该HTML页面能够被容易地加入到一个现有的页面中去;你可以把它粘贴到一个窗口中去并整理它的样式以匹配你的主页的其余部分,并且你可能包含一个定时函数-它在把访问者重新定向到一个安全的页面前等待一段固定的时间,同时显示一条消息指示口令正确。你还可以包含一个类似的函数集来重载初始页面。

总之,你可以使用本文所提供的脚本来限制到你的站点结构中的特定页面的存取。尽管该方法并没有提供一个数据库所提供的安全的用户名/口令认证方法,并且它意味着你必须把口令发给想存取安全页面的任何人,但是它的确耗费非常少的时间和编码提供了一种简单的安全层。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

详解PHP编码转换函数应用技巧 在PHP中有数量庞大的函数来支持我们的需求应用。下面介绍的这个函数就是有关PHP编码转换函数。希望对大家有所帮助。mb_convert_encoding函数为PHP内部多

浅谈php数组array_change_key_case() 函数和array_chunk()函数 如下所示:php/*array_change_key_case()返回其键均为大写或小写的数组。arrayarray_change_key_case(arrayinput[,intcase])参数描述:array是要转换键值的数组case有两个选

PHP判断表达式中括号是否匹配的简单实例 如下所示:php/***title:判断表达式中括号是否匹配*Description:()匹配)(不匹配利用压栈和出栈*@authorMrLv*/functionisValid($expstr){$temp=array();for($i=0;$istrlen($expstr);$i+

标签: php加密zend

本文链接地址:https://www.jiuchutong.com/biancheng/301669.html 转载请保留说明!

上一篇:PHP实现多关键字加亮功能(php多选)

下一篇:详解PHP编码转换函数应用技巧(php字符串编码转换)

  • 个人所得税应纳税额怎么计算
  • 小规模税费如何做分录
  • 自有住房出租
  • 工程款税率是多少专票
  • 工商税收是什么意思啊
  • 筹建期的开办费计入什么科目
  • 工程管理服务属于哪个国标行业
  • 7月薪资8月发怎么交税
  • 购买金税盘需要带什么
  • 生产企业出口货物可享受免税并退税
  • 应交税金进项税的会计分录
  • 拿到一个材料如何加工
  • 租赁汽车油费可以抵扣吗
  • 在建工程的招待费计入到哪个科目
  • 虚开发票对所得税的影响是怎样的?
  • 单次劳务费税率
  • 特许权使用费如何缴纳增值税
  • 收费公路通行费增值税电子普通发票
  • 税务局买税控盘需要的资料
  • 建材公司将自产产品卖出
  • 处置的固定资产
  • 企业资产类科目的是
  • 总资产报酬率
  • 苗木公司经营理念
  • 报销误餐费会计怎么做账
  • win10专业版分辨率1920x1080不见了
  • 员工报销款应该挂什么科目
  • 自然保护绘画
  • 按实际成本结转6日和7日的材料采购成本
  • 蓝桥杯web开发 618
  • 逆算法怎么算
  • jquery箭头函数
  • 预付款项属于什么
  • 土地使用税退税的会计分录
  • 房屋租赁可以开具住宿费发票吗
  • 基本户发工资的规定
  • 现金流量表本月数和本年累计数是相等的么
  • 城镇土地使用税征收标准及计算方法
  • python搞自动化
  • 帝国cms自动采集插件
  • 数字黑洞有哪些
  • 在建工程核算的内容有哪些
  • 小规模简易征收最新政策2020
  • 免税黄金什么意思
  • 固定资产折旧会影响净利润吗
  • 金税四期对企业影响
  • 对公账户余额和可用余额不一样
  • 清算时应交税金如何处理
  • 暂估的原材料用不用记原材料明细账
  • 注会考试模拟机考
  • 固定资产到期后继续使用
  • 产品成本归集和分配是哪一章的
  • 预付款项怎么做分录
  • 存货过期处理怎么做分录
  • 管理费用如何结转成本
  • 跨年度未开发票第二年如何做确认收入?
  • 公司安装监控属于什么费用
  • 暂估入库结转成本
  • 企业中的消费环境分析
  • 所得税费用为什么不计入营业利润
  • 行政事业单位固定资产入账标准最新规定
  • 自制简易手工
  • linux命令关机命令
  • u盘pe安装win7系统
  • dsapi.exe是什么
  • windows7功能打不开怎么办
  • window怎么开启自动更新
  • 32位win7安装
  • win7怎么查是不是正版
  • AndEngine 《Android游戏开发实践指南》之“吸血鬼游戏”实例学习(一)
  • Node.js中的construct构造函数
  • angularjs教程
  • js 数组处理
  • 供电局发票是什么样子的
  • 重庆国税电子税务局官网登录入口网址
  • 大连税务登记app
  • 光伏发电备案证如何办理
  • 张家港建行上班时间安排
  • 贵州网上办税服务厅登录
  • 安徽省手工发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设