⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000016.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;thinkin&nbsp;(强强),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;authticket&nbsp;&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Feb&nbsp;17&nbsp;10:59:25&nbsp;2000)&nbsp;<BR>&nbsp;<BR>&lt;?php&nbsp;<BR>//&nbsp;$Id:&nbsp;authticket.phl,v&nbsp;1.3&nbsp;1998/02/11&nbsp;16:45:34&nbsp;explorer&nbsp;Exp&nbsp;$&nbsp;<BR>//&nbsp;<BR>//&nbsp;Copyright&nbsp;(c)&nbsp;1998&nbsp;Michael&nbsp;Graff&nbsp;&lt;<A HREF="mailto:explorer@flame.org>">explorer@flame.org></A>&nbsp;<BR>//&nbsp;All&nbsp;rights&nbsp;reserved.&nbsp;<BR>//&nbsp;<BR>//&nbsp;Redistribution&nbsp;and&nbsp;use&nbsp;in&nbsp;source&nbsp;and&nbsp;binary&nbsp;forms,&nbsp;with&nbsp;or&nbsp;without&nbsp;<BR>//&nbsp;modification,&nbsp;are&nbsp;permitted&nbsp;provided&nbsp;that&nbsp;the&nbsp;following&nbsp;conditions&nbsp;<BR>//&nbsp;are&nbsp;met:&nbsp;<BR>//&nbsp;1.&nbsp;Redistributions&nbsp;of&nbsp;source&nbsp;code&nbsp;must&nbsp;retain&nbsp;the&nbsp;above&nbsp;copyright&nbsp;<BR>//&nbsp;&nbsp;&nbsp;&nbsp;notice,&nbsp;this&nbsp;list&nbsp;of&nbsp;conditions&nbsp;and&nbsp;the&nbsp;following&nbsp;disclaimer.&nbsp;<BR>//&nbsp;2.&nbsp;Redistributions&nbsp;in&nbsp;binary&nbsp;form&nbsp;must&nbsp;reproduce&nbsp;the&nbsp;above&nbsp;copyright&nbsp;<BR>//&nbsp;&nbsp;&nbsp;&nbsp;notice,&nbsp;this&nbsp;list&nbsp;of&nbsp;conditions&nbsp;and&nbsp;the&nbsp;following&nbsp;disclaimer&nbsp;in&nbsp;the&nbsp;<BR>//&nbsp;&nbsp;&nbsp;&nbsp;documentation&nbsp;and/or&nbsp;other&nbsp;materials&nbsp;provided&nbsp;with&nbsp;the&nbsp;distribution.&nbsp;<BR>//&nbsp;3.&nbsp;Neither&nbsp;the&nbsp;name&nbsp;of&nbsp;author&nbsp;nor&nbsp;the&nbsp;names&nbsp;of&nbsp;its&nbsp;contributors&nbsp;may&nbsp;be&nbsp;<BR>//&nbsp;&nbsp;&nbsp;&nbsp;used&nbsp;to&nbsp;endorse&nbsp;or&nbsp;promote&nbsp;products&nbsp;derived&nbsp;from&nbsp;this&nbsp;software&nbsp;<BR>//&nbsp;&nbsp;&nbsp;&nbsp;without&nbsp;specific&nbsp;prior&nbsp;written&nbsp;permission.&nbsp;<BR>//&nbsp;<BR>//&nbsp;THIS&nbsp;SOFTWARE&nbsp;IS&nbsp;PROVIDED&nbsp;BY&nbsp;THE&nbsp;AUTHOR&nbsp;AND&nbsp;CONTRIBUTORS&nbsp;``AS&nbsp;IS''&nbsp;AND&nbsp;ANY&nbsp;<BR>//&nbsp;EXPRESS&nbsp;OR&nbsp;IMPLIED&nbsp;WARRANTIES,&nbsp;INCLUDING,&nbsp;BUT&nbsp;NOT&nbsp;LIMITED&nbsp;TO,&nbsp;THE&nbsp;IMPLIED&nbsp;<BR>//&nbsp;WARRANTIES&nbsp;OF&nbsp;MERCHANTABILITY&nbsp;AND&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE&nbsp;ARE&nbsp;<BR>//&nbsp;DISCLAIMED.&nbsp;&nbsp;IN&nbsp;NO&nbsp;EVENT&nbsp;SHALL&nbsp;THE&nbsp;FOUNDATION&nbsp;OR&nbsp;CONTRIBUTORS&nbsp;BE&nbsp;LIABLE&nbsp;<BR>//&nbsp;FOR&nbsp;ANY&nbsp;DIRECT,&nbsp;INDIRECT,&nbsp;INCIDENTAL,&nbsp;SPECIAL,&nbsp;EXEMPLARY,&nbsp;OR&nbsp;CONSEQUENTIAL&nbsp;<BR>//&nbsp;DAMAGES&nbsp;(INCLUDING,&nbsp;BUT&nbsp;NOT&nbsp;LIMITED&nbsp;TO,&nbsp;PROCUREMENT&nbsp;OF&nbsp;SUBSTITUTE&nbsp;GOODS&nbsp;OR&nbsp;<BR>//&nbsp;SERVICES;&nbsp;LOSS&nbsp;OF&nbsp;USE,&nbsp;DATA,&nbsp;OR&nbsp;PROFITS;&nbsp;OR&nbsp;BUSINESS&nbsp;INTERRUPTION)&nbsp;HOWEVER&nbsp;<BR>//&nbsp;CAUSED&nbsp;AND&nbsp;ON&nbsp;ANY&nbsp;THEORY&nbsp;OF&nbsp;LIABILITY,&nbsp;WHETHER&nbsp;IN&nbsp;CONTRACT,&nbsp;STRICT&nbsp;<BR>//&nbsp;LIABILITY,&nbsp;OR&nbsp;TORT&nbsp;(INCLUDING&nbsp;NEGLIGENCE&nbsp;OR&nbsp;OTHERWISE)&nbsp;ARISING&nbsp;IN&nbsp;ANY&nbsp;WAY&nbsp;<BR>//&nbsp;OUT&nbsp;OF&nbsp;THE&nbsp;USE&nbsp;OF&nbsp;THIS&nbsp;SOFTWARE,&nbsp;EVEN&nbsp;IF&nbsp;ADVISED&nbsp;OF&nbsp;THE&nbsp;POSSIBILITY&nbsp;OF&nbsp;<BR>//&nbsp;SUCH&nbsp;DAMAGE.&nbsp;<BR>//&nbsp;<BR>class&nbsp;authticket&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$secret&nbsp;=&nbsp;&nbsp;&quot;setme&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;you&nbsp;WILL&nbsp;want&nbsp;to&nbsp;change&nbsp;this&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$realm&nbsp;=&nbsp;&nbsp;&quot;&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;realm&nbsp;of&nbsp;this&nbsp;identity&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$lifetime&nbsp;=&nbsp;2&nbsp;*&nbsp;60&nbsp;*60;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;tickets&nbsp;good&nbsp;for&nbsp;2&nbsp;hours&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$authenticated&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;data&nbsp;here&nbsp;is&nbsp;valid&nbsp;iff&nbsp;non-zero&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$identity;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;remote&nbsp;identity,&nbsp;if&nbsp;decoded&nbsp;correctly&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$issue;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;time&nbsp;the&nbsp;ticket&nbsp;was&nbsp;issued&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$remote_addr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;remote&nbsp;address&nbsp;of&nbsp;the&nbsp;client&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$hash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;hash&nbsp;value.&nbsp;&nbsp;Probably&nbsp;of&nbsp;little&nbsp;use.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$autherr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;if&nbsp;verification&nbsp;faild,&nbsp;this&nbsp;contains&nbsp;why&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;helper&nbsp;function&nbsp;which&nbsp;just&nbsp;zeros&nbsp;out&nbsp;the&nbsp;ticket&nbsp;data&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;zerodata()&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;authenticated&nbsp;=&nbsp;0;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;identity&nbsp;=&nbsp;&nbsp;&quot;&quot;;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;issue&nbsp;=&nbsp;0;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;remote_addr&nbsp;=&nbsp;&nbsp;&quot;&quot;;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;hash&nbsp;=&nbsp;&nbsp;&quot;&quot;;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;autherr&nbsp;=&nbsp;&nbsp;&quot;&quot;;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Take&nbsp;a&nbsp;string&nbsp;($identity)&nbsp;and&nbsp;a&nbsp;time&nbsp;($time)&nbsp;and&nbsp;the&nbsp;internal&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;secret&nbsp;value,&nbsp;and&nbsp;generate&nbsp;a&nbsp;string&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;verify&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;that&nbsp;the&nbsp;remote&nbsp;user&nbsp;is&nbsp;known&nbsp;to&nbsp;us.&nbsp;&nbsp;The&nbsp;result&nbsp;of&nbsp;this&nbsp;function&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;is&nbsp;a&nbsp;single&nbsp;string,&nbsp;that&nbsp;can&nbsp;be&nbsp;passed&nbsp;along&nbsp;in&nbsp;a&nbsp;hidden&nbsp;form&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;or&nbsp;even&nbsp;a&nbsp;cookie.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;If&nbsp;($time)&nbsp;is&nbsp;0,&nbsp;the&nbsp;current&nbsp;time&nbsp;is&nbsp;used&nbsp;instead.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;($identity)&nbsp;_cannot_&nbsp;contain&nbsp;a&nbsp;``:''&nbsp;character.&nbsp;&nbsp;If&nbsp;you&nbsp;need&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;one&nbsp;in&nbsp;there,&nbsp;you&nbsp;will&nbsp;have&nbsp;to&nbsp;change&nbsp;it&nbsp;to&nbsp;some&nbsp;sort&nbsp;of&nbsp;escape&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;sequence.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Some&nbsp;care&nbsp;should&nbsp;be&nbsp;used.&nbsp;&nbsp;I&nbsp;recommend&nbsp;using&nbsp;this&nbsp;only&nbsp;over&nbsp;SSL,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;unless&nbsp;the&nbsp;actual&nbsp;ticket&nbsp;contents&nbsp;are&nbsp;encrypted&nbsp;using&nbsp;something&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;stronger&nbsp;than&nbsp;XOR.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;makeauth($identity,&nbsp;$time)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;$REMOTE_ADDR;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;zerodata();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($time&nbsp;==&nbsp;0)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$time&nbsp;=&nbsp;time();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ticket_items[]&nbsp;=&nbsp;(string)$time;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ticket_items[]&nbsp;=&nbsp;$this-&gt;realm;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ticket_items[]&nbsp;=&nbsp;$REMOTE_ADDR;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ticket_items[]&nbsp;=&nbsp;$identity;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ticket&nbsp;=&nbsp;implode($ticket_items,&nbsp;&nbsp;&quot;:&quot;);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$hash&nbsp;=&nbsp;md5($this-&gt;secret&nbsp;.&nbsp;$ticket);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ticket&nbsp;=&nbsp;$hash&nbsp;.&nbsp;&nbsp;':'&nbsp;.&nbsp;$ticket;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;identity&nbsp;=&nbsp;$identity;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;issue&nbsp;=&nbsp;$time;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;remote_addr&nbsp;=&nbsp;$REMOTE_ADDR;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;hash&nbsp;=&nbsp;$hash;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;authenticated&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;/*&nbsp;data&nbsp;is&nbsp;valid&nbsp;*/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;autherr&nbsp;=&nbsp;&nbsp;&quot;&quot;;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$ticket;&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -