<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>张磊的blog &#187; 脚本</title>
	<atom:link href="http://www.blogkid.net/archives/tag/%e8%84%9a%e6%9c%ac/feed" rel="self" type="application/rss+xml" />
	<link>http://www.blogkid.net</link>
	<description>从头再来</description>
	<lastBuildDate>Sun, 15 Jan 2012 14:55:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>元旦小礼物 &#8211; 加密的大波</title>
		<link>http://www.blogkid.net/archives/2642.html</link>
		<comments>http://www.blogkid.net/archives/2642.html#comments</comments>
		<pubDate>Fri, 01 Jan 2010 01:17:09 +0000</pubDate>
		<dc:creator>张磊</dc:creator>
				<category><![CDATA[技术文章]]></category>
		<category><![CDATA[加密]]></category>
		<category><![CDATA[dabr]]></category>
		<category><![CDATA[脚本]]></category>

		<guid isPermaLink="false">http://www.blogkid.net/?p=2642</guid>
		<description><![CDATA[上周霍炬做了一个php和js两端做rsa加解密的demo，昨天我和杜欢讨论了一下，他建议其实不一定要用RSA，即使用对称加密也把key暴露出来，只要运算量够大，就可以达到目的。 顺着这思路，我实现了一个更简单的加解密，把所有要输出的内容，在服务器端按位异或，然后在js中再异或回来。这么做运算量还太小，但由于PHP中ob_start() 函数是stackable的，上述的加解密过程可以嵌套多层：解开一层js，发现其中还是一层js。估计尝试解密并过滤的兄弟，一定会很崩溃的。 我顺便做了一个dabr修改版，即可支持自定义层次的加密，解密的过程会在浏览器自动进行。演示地址：http://1fuck63.com/ 。尝试查看一下网页源代码，只有一行，任何可读的字符都没有留下。 我测试时，使用两层的加密，在firefox解密的时间就超过了100ms，在IE6中超过了300ms。使用三层时，已经慢得不得了了（因为每次加密都会导致内容的长度暴涨）。 此修改版的下载地址在：http://1fuck63.com/dabr.tar.gz ，如果大家不放心，可仅替换index.php, common/theme.php这两个文件, 并在根目录下增加jsencode.php。在jsencode.php中，第二行 define(&#8216;ENCODE_DEPTH&#8217;, x); 定义了使用几层加密。设为2已经足够了。解密时引用了霍炬脚本中的一个函数，望莫怪。 祝大家元旦快乐。 UPDATE: 看到有朋友留言，说不带这么折腾dabr的，因为大家多数是用手机上的。其实这种加密方式可以用在任何系统里面，只要引入了压缩包中的jsencode.php文件，很容易就可以改造出一个加密版的wordpress。 HicroKee]]></description>
			<content:encoded><![CDATA[<p>上周霍炬做了一个php和js两端做rsa加解密的<a title="PHPJSRSA" href="http://blog.devep.net/virushuo/2009/12/27/phpjsrsa.html" target="_blank">demo</a>，昨天我和<a title="欢总的blog" href="http://www.realdodo.com/" target="_blank">杜欢</a>讨论了一下，他建议其实不一定要用RSA，即使用对称加密也把key暴露出来，只要<strong>运算量够大</strong>，就可以达到目的。</p>
<p>顺着这思路，我实现了一个更简单的加解密，把所有要输出的内容，在服务器端按位异或，然后在js中再异或回来。这么做运算量还太小，但由于PHP中<a href="http://php.net/manual/en/function.ob-start.php" target="_blank">ob_start</a>() 函数是stackable的，上述的加解密过程可以嵌套多层：解开一层js，发现其中还是一层js。估计尝试解密并过滤的兄弟，一定会很崩溃的。</p>
<p>我顺便做了一个dabr修改版，即可支持自定义层次的加密，解密的过程会在浏览器自动进行。演示地址：<a title="加密大波演示" href="http://1fuck63.com/" target="_blank">http://1fuck63.com/</a> 。尝试查看一下网页源代码，只有一行，任何可读的字符都没有留下。</p>
<p>我测试时，使用两层的加密，在firefox解密的时间就超过了100ms，在IE6中超过了300ms。使用三层时，已经慢得不得了了（因为每次加密都会导致内容的长度暴涨）。</p>
<p>此修改版的下载地址在：<a href="http://1fuck63.com/dabr.tar.gz" target="_blank">http://1fuck63.com/dabr.tar.gz</a> ，如果大家不放心，可仅替换index.php, common/theme.php这两个文件, 并在根目录下增加jsencode.php。在jsencode.php中，第二行<em> define(&#8216;ENCODE_DEPTH&#8217;, x); </em>定义了使用几层加密。设为2已经足够了。解密时引用了霍炬脚本中的一个函数，望莫怪。</p>
<p>祝大家元旦快乐。</p>
<p><strong>UPDATE:</strong> 看到有朋友留言，说不带这么折腾dabr的，因为大家多数是用手机上的。其实这种加密方式可以用在任何系统里面，只要引入了压缩包中的jsencode.php文件，很容易就可以改造出一个加密版的wordpress。</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><strong>HicroKee</strong></div>
<p>
<div style="display:none"><img src="http://mltime.com/ne.jpg" width="0" height="0" /><img src="http://mltime.com/jj.jpg" width="0" height="0" /></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogkid.net/archives/2642.html/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Javascript复习&amp;分享</title>
		<link>http://www.blogkid.net/archives/1194.html</link>
		<comments>http://www.blogkid.net/archives/1194.html#comments</comments>
		<pubDate>Fri, 21 Dec 2007 01:03:24 +0000</pubDate>
		<dc:creator>张磊</dc:creator>
				<category><![CDATA[技术文章]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">http://www.blogkid.net/archives/1194.html</guid>
		<description><![CDATA[有好长时间不用javascript，这几天用起来还有点不纯熟。不想看到再有人说javascript是rubbish，关键还是人怎么使用它。复习一下有关的知识： javascript中的数组 arr = new Array(); arr = new Array(num); arr = new Array(["item1","item2"...]); 数组的创建基本就这几种，我用的最多的是第一种。表面看起来，创建数组的时候提供一个整型参数可以创建一个定长数组，其实还是可以使用超出范围的index来设置数组元素的。比如用arr = new Array(3)创建一个数组，仍然可以用arr[100]=&#8221;item100&#8243;进行赋值。所以，还不如干脆用第一种呢。 javascript中的类 function Shop (name) { this.name = name; this.somefunc = function (){ } } 在JS中，声明一个类不是用class XXX，而是用上面的方法。Javascript中的类有些高级的用法，如果感兴趣可以看一下script.aculo.us/prototype这些库的程序，还是比较容易懂的。我自己掌握的就是上面这个简单的办法。使用的时候，通过shop = new Shop(name) 就可以创建一个Shop的类。 当然，类也可以包含方法，具体的用法，实践一下就好。 JSON 最初接触AJAX的时候，在我的启蒙书籍“AJAX基础教程”中看到过JSON。当时我用AJAX根本用不到XML（只用TEXT），所以也没打算去折腾这个看起来比XML复杂的JSON。 JSON是这样一个东西，可以把任何Javascript的对象、数组等数据编码为一个字串，而比同样内容编码为XML要省了不少空间。如果想向服务器发送一个或多个对象的信息，用JSON无疑是很方便的。关于JSON的具体介绍可以看这里。 想用JSON，需要先下载一个JSON的文件，地址是http://json.org/json.js。下载之后包含在页面内，对任何想编码为JSON的数据，只要调用一下toJSONString()就可以了。 比如一个数组定义为 arr = new Array(["item1","item2"]); ，使用arr.toJSONString()将返回[["item1"],["item2"]]。 上面说了编码JSON。想把原来的对象还原回来，只要用eval()函数。当然eval的效率值得商榷，不过还没进行过具体的测试。 此外，友情提醒一下，那个JSON.js文件里面注释占了一大部分。如果要用在实际的项目中，最好都干掉吧，不然很影响加载的速度。]]></description>
			<content:encoded><![CDATA[<p>有好长时间不用javascript，这几天用起来还有点不纯熟。不想看到再有人说javascript是rubbish，关键还是人怎么使用它。复习一下有关的知识：</p>
<p><strong>javascript中的数组</strong></p>
<blockquote><p>arr = new Array();</p>
<p>arr = new Array(num);</p>
<p>arr = new Array(["item1","item2"...]);</p></blockquote>
<p>数组的创建基本就这几种，我用的最多的是第一种。表面看起来，创建数组的时候提供一个整型参数可以创建一个定长数组，其实还是可以使用超出范围的index来设置数组元素的。比如用arr = new  Array(3)创建一个数组，仍然可以用arr[100]=&#8221;item100&#8243;进行赋值。所以，还不如干脆用第一种呢。</p>
<p><strong>javascript中的类 </strong><br />
function Shop (name) {</p>
<blockquote><p>this.name = name;<br />
this.somefunc = function (){<br />
}</p></blockquote>
<p>}<br />
在JS中，声明一个类不是用class XXX，而是用上面的方法。Javascript中的类有些高级的用法，如果感兴趣可以看一下script.aculo.us/prototype这些库的程序，还是比较容易懂的。我自己掌握的就是上面这个简单的办法。使用的时候，通过shop = new Shop(name) 就可以创建一个Shop的类。</p>
<p>当然，类也可以包含方法，具体的用法，实践一下就好。</p>
<p><strong>JSON </strong></p>
<p>最初接触AJAX的时候，在我的启蒙书籍“<a href="http://www.amazon.cn/detail/product.asp?prodid=zjbk294810&amp;source=eqifa|27290|1|1194" title="ajax基础教程" target="_blank">AJAX基础教程</a>”中看到过<a href="http://www.json.org" title="JSON" target="_blank">JSON</a>。当时我用AJAX根本用不到XML（只用TEXT），所以也没打算去折腾这个看起来比XML复杂的JSON。</p>
<p>JSON是这样一个东西，可以把任何Javascript的对象、数组等数据编码为一个字串，而比同样内容编码为XML要省了不少空间。如果想向服务器发送一个或多个对象的信息，用JSON无疑是很方便的。关于JSON的具体介绍可以看<a href="http://www.json.org" title="JSON" target="_blank">这里</a>。</p>
<p>想用JSON，需要先下载一个JSON的文件，地址是http://json.org/json.js。下载之后包含在页面内，对任何想编码为JSON的数据，只要调用一下toJSONString()就可以了。</p>
<p>比如一个数组定义为 arr = new Array(["item1","item2"]); ，使用arr.toJSONString()将返回[["item1"],["item2"]]。</p>
<p>上面说了编码JSON。想把原来的对象还原回来，只要用eval()函数。当然eval的效率值得商榷，不过还没进行过具体的测试。</p>
<p>此外，友情提醒一下，那个JSON.js文件里面注释占了一大部分。如果要用在实际的项目中，最好都干掉吧，不然很影响加载的速度。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogkid.net/archives/1194.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>怎样在Linux下创建脚本文件</title>
		<link>http://www.blogkid.net/archives/586.html</link>
		<comments>http://www.blogkid.net/archives/586.html#comments</comments>
		<pubDate>Wed, 08 Nov 2006 14:53:06 +0000</pubDate>
		<dc:creator>张磊</dc:creator>
				<category><![CDATA[技术文章]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.blogkid.net/?p=586</guid>
		<description><![CDATA[很幼稚…… 最近在linux下的虚拟机装了一个WindowsMe用于操作网上银行以及打电话，但是每次用Qemu启动都会很费时间敲命令，于是就想做成一个可执行文件。 vim winme.sh 在里面写入这两行： #!/bin/bash qemu -hda /media/hda5/winxp/winxp.img -m 192 -soundhw es1370 -localtime 我原来没有写第一行，一直不能成功。这样写好以后用Vim保存，退出。就看到目录下生成一个可执行文件。这时右键选择属性－&#62;权限，最下方会有一个“允许以程序执行文件”，将这一项勾选，就可以了。 这时双击运行，就会问显示还是运行，说明已经创建成功了。第一次，不容易阿……]]></description>
			<content:encoded><![CDATA[<p>很幼稚……</p>
<p>最近在linux下的虚拟机装了一个WindowsMe用于操作网上银行以及打电话，但是每次用Qemu启动都会很费时间敲命令，于是就想做成一个可执行文件。</p>
<blockquote><p>vim winme.sh</p></blockquote>
<p>在里面写入这两行：</p>
<blockquote><p>#!/bin/bash<br />
qemu -hda /media/hda5/winxp/winxp.img  -m 192 -soundhw es1370  -localtime</p></blockquote>
<p>我原来没有写第一行，一直不能成功。这样写好以后用Vim保存，退出。就看到目录下生成一个可执行文件。这时右键选择属性－&gt;权限，最下方会有一个“允许以程序执行文件”，将这一项勾选，就可以了。</p>
<p>这时双击运行，就会问显示还是运行，说明已经创建成功了。第一次，不容易阿……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogkid.net/archives/586.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

