<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[LOJA Studio - ASP/PHP/ASP.NET]]></title>
<link>http://loja.cn/blog/</link>
<description><![CDATA[]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[loja@tom.com(LOJA)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>LOJA Studio</title>
	<url>http://loja.cn/blog/images/logos.gif</url>
	<link>http://loja.cn/blog/</link>
	<description>LOJA Studio</description>
</image>

			<item>
			<link>http://loja.cn/blog/article/script/196.htm</link>
			<title><![CDATA[关于Session.LCID一些资料]]></title>
			<author>loja@tom.com(LOJA)</author>
			<category><![CDATA[ASP/PHP/ASP.NET]]></category>
			<pubDate>Sat,25 Aug 2007 14:13:18 +0800</pubDate>
			<guid>http://loja.cn/blog/default.asp?id=196</guid>
		<description><![CDATA[区域设置 ID (LCID) 说明 <br/>1033 通用 Unicode <br/>33280 二进制顺序 <br/>1027 加泰罗尼亚语 <br/>197636 中文汉语拼音字母（中国台湾地区） <br/>2052 中文标点符号 <br/>133124 中文笔画 <br/>1028 中文笔画（中国台湾地区） <br/>1050 克罗地亚语 <br/>1029 捷克语 <br/>1043 荷兰语 <br/>1061&nbsp;&nbsp;爱沙尼亚语 <br/>1036 法语 <br/>66615 现代格鲁吉亚语 <br/>1031 德语 <br/>66567 德语电话簿 <br/>1038 匈牙利语 <br/>66574 匈牙利技术 <br/>1039 冰岛语 <br/>1040 意大利语 <br/>1041 日语 <br/>66577 日语 Unicode <br/>1042 朝鲜语 <br/>66578 朝鲜语 Unicode <br/>1062 拉脱维亚语 <br/>1063 立陶宛语 <br/>1071&nbsp;&nbsp;FYRO 马其顿语 <br/>1044 挪威语/丹麦语 <br/>1045 波兰语 <br/>1046 葡萄牙语 <br/>1048 罗马尼亚语 <br/>1051 斯络伐克语 <br/>1060 斯络文尼亚语 <br/>1034 传统西班牙语 <br/>3082 现代西班牙语 <br/>1053 瑞典语/芬兰语 <br/>1054 泰语 <br/>2057 英国英语 <br/>1058&nbsp;&nbsp;乌克兰语 <br/>1066 越南语 ]]></description>
		</item>
		
			<item>
			<link>http://loja.cn/blog/article/script/166.htm</link>
			<title><![CDATA[给PJBlog加上中文验证码]]></title>
			<author>loja@tom.com(LOJA)</author>
			<category><![CDATA[ASP/PHP/ASP.NET]]></category>
			<pubDate>Tue,02 Jan 2007 14:38:39 +0800</pubDate>
			<guid>http://loja.cn/blog/default.asp?id=166</guid>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;最近发现广告机又猖狂作乱。上次通过Jay的帮助，修正了PJblog引用通告被广告机攻击的问题后，最近评论和留言又遭攻击。虽然不及引用通告的严重，但是还要花时间来删除。开始通过封某地段IP地址的方法，但觉得这只是权宜之计，代理个IP就可以轻易攻破。昨天晚上看了看Jay和其他的朋友的Blog，也发现遭受同样IP段的广告机攻击。<br/>&nbsp;&nbsp;&nbsp;&nbsp;鉴于以上原因，昨天晚上熬夜给PJBlog加了中文验证码，并特意为此更新了《大字涂鸦》（下载地址<a href="http://soft.loja.cn" target="_blank" rel="external"><a href="http://soft.loja.cn" target="_blank" rel="external">http://soft.loja.cn</a></a>）以便字体转为二进制文本。今天早晨写了该篇日志，希望对大家有用。<br/>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:Red">注：在修改以下的任何文件前，强烈建议备份修改前的相关文件。</span><br/><br/><span style="color:Blue">【首先，给验证码加上自动刷新功能】</span><br/>注：此为PJblog官方Wady网友原创。<br/><a target="_blank" href="http://bbs.pjhome.net/viewthread.php?tid=9871&amp;highlight=%D1%E9%D6%A4%C2%EB" rel="external">原始地址</a><br/><br/>强制在错误信息页面读取一次 getcode.asp 。方法如下：<br/>打开PJBlog根目录的 checkuser.asp 查找到<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://loja.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">请返回重新输入&lt;/a&gt;</div></div><br/>有很多很多，全部更换成<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://loja.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">请返回重新输入&lt;/a&gt;&lt;br/&gt;&lt;img src=&#34;&#34;common/getcode.asp&#34;&#34; alt=&#34;&#34;&#34;&#34; width=&#34;&#34;0&#34;&#34; height=&#34;&#34;0&#34;&#34;/&gt;</div></div><br/><br/>还有查找到<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://loja.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">单击返回&lt;/a&gt;</div></div><br/>也有很多，全部更换成<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://loja.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">单击返回&lt;/a&gt;&lt;br/&gt;&lt;img src=&#34;&#34;common/getcode.asp&#34;&#34; alt=&#34;&#34;&#34;&#34; width=&#34;&#34;0&#34;&#34; height=&#34;&#34;0&#34;&#34;/&gt;</div></div><br/><br/><br/><br/><span style="color:Blue">【其次，给PJBlog加上中文验证码】</span><br/><span style="color:Red">本站原创！转载请注明作者和出处。</span><br/><br/>打开PJBlog根目录下的common文件夹，找到 GetCode.asp 修改以下代码（红色部分）：<br/><br/>为了方便大家输入验证码，这里采用了常用汉字。但如果以下汉字被广告机破解后，建议您最好自定义设定代码中的汉字。<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://loja.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%@CodePage=&#34;65001&#34;%&gt;<br/>&lt;%<br/>Call Com_CreatValidCode(&#34;GetCode&#34;)<br/><br/>Sub Com_CreatValidCode(pSN)<br/>&#160;&#160;&#160;&#160;&#39; 禁止缓存<br/>&#160;&#160;&#160;&#160;Response.Expires = -9999 <br/>&#160;&#160;&#160;&#160;Response.AddHeader &#34;Pragma&#34;,&#34;no-cache&#34;<br/>&#160;&#160;&#160;&#160;Response.AddHeader &#34;cache-ctrol&#34;,&#34;no-cache&#34;<br/>&#160;&#160;&#160;&#160;&#39;Response.ContentType = &#34;Image/BMP&#34;<br/><br/>&#160;&#160;&#160;&#160;Randomize<br/><br/>&#160;&#160;&#160;&#160;Dim i, ii, iii<br/><br/>&#160;&#160;&#160;&#160;Const cOdds = 4 &#39; 杂点出现的机率<br/>&#160;&#160;&#160;&#160;<span style="color:Red">Const cAmount = 36&nbsp;&nbsp;&nbsp;&nbsp; &#39; 文字数量<br/>&#160;&#160;&#160;&#160;Const cCode = &#34;的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可&#34;&nbsp;&nbsp; </span><br/><br/>&#160;&#160;&#160;&#160;&#39; 颜色的数据(字符，背景)<br/>&#160;&#160;&#160;&#160;Dim vColorData(1),vColorRandom(10)<br/>&#160;&#160;&#160;&#160;&#39;vColorData(0) = ChrB(Int(Rnd*155)+100) &amp; ChrB(Int(Rnd*155)+100) &amp; ChrB(Int(Rnd*155)+100) &#39; 蓝0，绿0，红0（黑色）<br/>&#160;&#160;&#160;&#160;vColorRandom(0)=ChrB(150) &amp; ChrB(0) &amp; ChrB(0)<br/>&#160;&#160;&#160;&#160;vColorRandom(1)=ChrB(0) &amp; ChrB(150) &amp; ChrB(0)<br/>&#160;&#160;&#160;&#160;vColorRandom(2)=ChrB(0) &amp; ChrB(0) &amp; ChrB(150)<br/>&#160;&#160;&#160;&#160;vColorRandom(3)=ChrB(0) &amp; ChrB(50) &amp; ChrB(150)<br/>&#160;&#160;&#160;&#160;vColorRandom(4)=ChrB(150) &amp; ChrB(50) &amp; ChrB(0)<br/>&#160;&#160;&#160;&#160;vColorRandom(5)=ChrB(150) &amp; ChrB(0) &amp; ChrB(150)<br/>&#160;&#160;&#160;&#160;vColorRandom(6)=ChrB(150) &amp; ChrB(100) &amp; ChrB(10)<br/>&#160;&#160;&#160;&#160;vColorRandom(7)=ChrB(150) &amp; ChrB(40) &amp; ChrB(120)<br/>&#160;&#160;&#160;&#160;vColorRandom(8)=ChrB(150) &amp; ChrB(0) &amp; ChrB(250)<br/>&#160;&#160;&#160;&#160;vColorRandom(9)=ChrB(100) &amp; ChrB(100) &amp; ChrB(100)<br/>&#160;&#160;&#160;&#160;vColorRandom(10)=ChrB(50) &amp; ChrB(50) &amp; ChrB(50)<br/>&#160;&#160;&#160;&#160;vColorData(0) = vColorRandom(0)<br/>&#160;&#160;&#160;&#160;vColorData(1) = ChrB(250) &amp; ChrB(250) &amp; ChrB(255) &#39;背景色 蓝250，绿236，红211（浅蓝色）<br/>&#160;&#160;&#160;&#160;&#39; 随机产生字符<br/>&#160;&#160;&#160;&#160;Dim vCode(4),vCodes,vCodeColors(4)<br/>&#160;&#160;&#160;&#160;For i = 0 To 3<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;vCodeColors(i)=vColorRandom(Int(Rnd * 10))<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;vCode(i) = Int(Rnd * cAmount)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;vCodes = vCodes &amp; Mid(cCode, vCode(i)+ 1, 1)<br/>&#160;&#160;&#160;&#160;Next<br/><br/>&#160;&#160;&#160;&#160;Session(pSN) = vCodes &#39;记录入Session<br/>&#160;&#160;&#160;&#160;&#39; 字符的数据<br/>&#160;&#160;&#160;&#160;<span style="color:Red">Dim vNumberData(35)<br/>&#160;&#160;&#160;&#160;vNumberData(0) = &#34;0000000000000000000010000100000000001000010000000001000001111110011111101000001001000010100000100100001010000010010000100100001001000010001000100111111000100010010000100001001001000010000100100100001000000010010000100000001001111110010001000000000000111000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(1) = &#34;1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(2) = &#34;1111111111111111111111111111111111100000000001111110111111110111111000000000011111101111111101111110111111110111111100000000111110000000000000011111111011111111111011101111111111101110000000111110011011111111111000101111111111011100111111111011111000000001&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(3) = &#34;0000000000000000000000000000000000000010000000000111111111111110000001000000000000000100010000000000100001000000000010000100000000010000010000000111011111111100000100000100000000010000010000000001000001000000000100000100000000010000010000000001111111111110&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(4) = &#34;0000000000000000000000000000000001111111111111100000000010000000000000010000000000000001000000000000001101000000000001010010000000001001000100000001000100001000011000010000010000000001000000100000000100000000000000010000000000000001000000000000000100000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(5) = &#34;1111111111111111111111111111111111000000000000111111111111110011111111111110111111111111100111111111111101111111111111100111111111111111011111111111111110111111111111111011111111111111110111111111111111011111111111111011111111111111101111111111100001111111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(6) = &#34;1111111111111111111111101111111111111101111111111000000000000001111110111111111111110111111111111110000000000011100011111111101111101111111110111110000000000011111011111111101111101111111110111110000000000011111011111111101111101111111110111110111111000011&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(7) = &#34;0000000000000000000000000000000000111110000000000000100001111110000010001000001000001000100000100111111110000010000010001000001000011100100000100010101010000010001010011000001001001000100000100000100010000010000010001000001000001000011111100000100000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(8) = &#34;0000000000000000000000000000000000000000100000000000000010000000000000001000000000000000100000000000000110000000000000011000000000000001010000000000001001000000000000100010000000000100001000000000100000010000000100000000100000100000000001000100000000000010&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(9) = &#34;1111111111111111111111111111111111011111101111111101111110111111111010000000000111111111111101111111110111110111100111101110111111101111011011111110111110011111111011111101111111101111101011111110111101110111111011001111101111010011111110111011100000000001&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(10) = &#34;1111111111111111111111100111111111111110011111111111111001111111111111000000011111100000011000111110011001100111111101100100111111111000000011111111111101111111111111110111111111111111011111111111111101111111111111110111111111111111011111111111111101111111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(11) = &#34;0000000000000000000000010000000000000001000000000000000100000000000000010000000000000001001000000000000111100000000011111100000000001111000000000000001110000000000000101100000000000110011000000000110000011000001110000001111100000000000000000000000000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(12) = &#34;0000000000000000000000000000000000000000001000000000000001000000000001100100000000000000100000000000000011110000000001111001100000011011000110000000001110011000000001001001100000001000000100000001100010110000001100000110000000000000001000000000000000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(13) = &#34;1111111111111111111111111111111111111111111111111111111011111111111111101111111111111110101111111111111000111111111111101111111111111110111111111111111011111111111111101111111111111000000001111100011111110111111111111111111111111111111111111111111111111111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(14) = &#34;0000000000000000000000000000000000000001100000000000000110000000000000111000000000000110010000000000110000100000000010011001100000010001100011000010000110001111000000010000000000000001000000000000000100000000000000010000000000000001000000000000000000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(15) = &#34;0000000000000000000000000000000001000000000010000111111111111100010000000010100001001111111110000100000100001000010000010100100001001111111010000100000111001000010000010110100001001111111110000100000000001000010000000000100001111111111110000100000000001000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(16) = &#34;1111111111111111111111111111111111111111011111111111101100011111111000010100111100010111011011111111011101110011000000000000001111110111011111111111010001100111111100110100111100000111100111111011011110111011111101100001101110010101110000111110011111100011&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(17) = &#34;0000000000000000000000000000000000000000001000000000010000110000010001100011000001000010001100000100001000110000010000010010000001000010001000000100010000100000010010000110000001010000011000000110000011010000111000001000100001000011000011000000110000001100&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(18) = &#34;1111111111111111111111111111111111111111111101110000000000000011110110110110111111000000000001111101101101101111110110110110111111000000000011111101101111100011000000000000001111110111101111111110011100111111111100000111111111111001100011111100011111100111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(19) = &#34;0000000000000000000000000000000000011000110000000001000010000000001101001000000000100100100110000010010011101000011001111000100001111100100010001010010010001000101001001000100000100100111110000010010010101000001001001000100000100100000011000010001111111000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(20) = &#34;0000000000000000000000000000000000000000000110000100100000010000011110000001000001001000000101000100100111111100010010000001000001111001000100000100100110010000010010001001000001001000000100000111100000010000010010000001000001000000000100000000000001110000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(21) = &#34;1111111111111111111111111111111111111110111111111111111011111111111111101110011110000000000000111110111011001111111001101101111111110110101100110000000000000001111110000111111111111010101111111111011010011111111011101100111110011110111000010111111011110111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(22) = &#34;1111111111111111111111111111111111111111111111111100000000000011110111101111011111011110111101111101111011110111110000000000011111011110111101111100000000000111110111101111011111011110111101111101111011110111110111101111011110111110100101111011111011100111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(23) = &#34;0000000000000000000000000000000000011010000000000011000100001000001000011111100000100001000010000110010000001000011001000000100010100100000010000010010000001000001001000000100000100100000010000010010000001000001001000000100000100100001110000010010000011000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(24) = &#34;1111110011111111100111001111111110011100111111111001110011111111000000000000111100000000000011110111110011111111111111001111111111000000000111111100000000011111111111001111111111111100111111111111110011111111000000000000001100000000000000111111111111111111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(25) = &#34;0000000000011000111111110001100011111111010110000011000001011000011001100101100011111111010110001111111101011000000110000101100011111110010110001111111001011000000110000101100000011111010110001111111100011000111100000011100000000000001100000000000000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(26) = &#34;0011000110000000001100011000000000110011000000000110001111111100011001111111110011101101100000001110000111111000011000011111100001100001100000000110000110000000011000011111110001100001111111000110000110000000011000011000000001100001100000000000000000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(27) = &#34;1111111111111111100111110011111110011111001111111001100100111111000010010000011100001000000001111001000000100111100100010010011110011001001001111001100100000111100010010000111100001001001100110011100111110011111110000000001111111100000001111111111111111111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(28) = &#34;1111111111111111100000000000111110000000000011111111110011111111111111001111111111111100111111110000000000000011000000000000001111111100111111111111110011111111111111001111111111111100111111111111110011111111111100001111111111110001111111111111111111111111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(29) = &#34;0000001100000000000000110000000001100011000110000110001100011000011000110001100001111111111110000111111111111000000000110000000000000011000000000110001100011000011000110001100001100011000110000111111111111000011111111111100000000000000110000000000000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(30) = &#34;0000000000000000000000000011000000000110001100000000001100111100000001111111011000111100001100000000011100111110000111111111000000011011001110000000111001111000001101111111100100110110110110010010111110011001000000110000111100000000000000000000000000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(31) = &#34;1111111111111111111111110001111111111111110011111111111001100111111111100111001111111100111110001111100111111100111100111000011111000000001001111111111100100111111111100110011111111100111001111111100100001111111000111001111111111111111111111111111111111111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(32) = &#34;1111111111110011111111111111001111111111111100111111100001110011111000100111000011111110000000111110010011110011111100000011001111111001100100111111000011110011111001100111001111001111111100111111111111000011111111111110001111111111111111111111111111111111&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(33) = &#34;0000000011000000000000001100110000000000110001100000000001100000000000000111110000000111111000000000011001100110000001100011011000000111111111000000011011011000000011001101100000001111111111000001100111100110001100000000001100000000000000010000000000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(34) = &#34;0000000011000000000000001100000000000001111000000000000110110000000000110001100000000110011111000000111111000111000110000000001100110000011111000000111111000000000000011011000000000011000110000000011001111100000001111100110000000000000000000000000000000000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(35) = &#34;1111111111111111111111111111111111111111111100001100000000000111111111111110011111111100001001111111100100100111111110010010011111111000001001111111111111100111111111111110011111111111111001111111111110000111111111111100011111111111111111111111111111111111&#34;</span><br/><br/>&#160;&#160;&#160;&#160;&#39; 输出图像文件头<br/>&#160;&#160;&#160;&#160;Response.BinaryWrite ChrB(66) &amp; ChrB(77) &amp; ChrB(230) &amp; ChrB(4) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp;_<br/>&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0) &amp; ChrB(54) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(40) &amp; ChrB(0) &amp;_<br/>&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0) &amp; ChrB(<span style="color:Red">64</span>) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(<span style="color:Red">16</span>) &amp; ChrB(0) &amp;_<br/>&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0) &amp; ChrB(1) &amp; ChrB(0)<br/><br/>&#160;&#160;&#160;&#160;&#39; 输出图像信息头<br/>&#160;&#160;&#160;&#160;Response.BinaryWrite ChrB(24) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(176) &amp; ChrB(4) &amp;_<br/>&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0) &amp; ChrB(18) &amp; ChrB(11) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(18) &amp; ChrB(11) &amp;_<br/>&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp;_<br/>&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0)<br/>&#160;&#160;&#160;&#160;<span style="color:Red">For i = 15 To 0 Step -1</span> &#39; 历经所有行<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;For ii = 0 To 3 &#39; 历经所有字<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span style="color:Red">For iii = 1 To 16</span> &#39; 历经所有像素<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#39; 逐行、逐字、逐像素地输出图像数据<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;vColorData(0)=vCodeColors(ii)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Rnd * 99 + 1 &lt; cOdds Then &#39; 随机生成杂点<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.BinaryWrite vColorData(0)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span style="color:Red">Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 16 + iii, 1))</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;Next<br/>End Sub<br/><br/>%&gt;<br/></div></div><br/><br/>注：汉字验证码修改了以前每个英文字符10*10的点阵为16*16。<br/><br/><br/><br/><span style="color:Blue">【高级，自定义PJBlog的中文验证码】</span><br/><span style="color:Red">本站原创！转载请注明作者和出处。</span><br/>如果以上汉字验证码被破解，或者大家想自定义以上代码中的汉字，那么就可以按照以下操作自定义中文。<br/><br/>打开PJBlog根目录下的common文件夹，找到 GetCode.asp 找到：<br/>原代码：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://loja.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Const cAmount = 36 &#39; 文字数量<br/>&#160;&#160;&#160;&#160;Const cCode = &#34;的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可&#34; &#39;为了方便输入，这里采用了常用汉字<br/></div></div><br/>Const cAmount 中“36”代表文字数（<span style="color:Red"></span>是文字数，不是字节数）<br/>Const cCode后面引号里的就是在验证码中出现的汉字。<span style="color:Red">注：必须全为汉字或者全角字符。</span><br/>自己可以修改以上的汉字和文字数，Const cAmount不能大于实际引号中的汉字数。Const cAmount不能小于4。<br/>比如我们可以修改为：<br/>新代码：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://loja.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Const cAmount = 4 &#39; 文字数量<br/>&#160;&#160;&#160;&#160;Const cCode = &#34;欢迎使用&#34; <br/></div></div><br/><br/><br/>到这里还不够，我们还要修改下面代码中的<br/><br/>原代码：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://loja.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Dim vNumberData(35)<br/>&#160;&#160;&#160;&#160;vNumberData(0) = &#34;0000000000000000000010000100000000001000010000000001000001111110011111101000001001000010100000100100001010000010010000100100001001000010001000100111111000100010010000100001001001000010000100100100001000000010010000100000001001111110010001000000000000111000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(1) = &#34;1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111&#34;<br/>......<br/><br/></div></div><br/><br/>Dim vNumberData(35)中的“35”修改为上面Const cAmount -1，按照上面的例子也就是4-1，即3。<br/>vNumberData 和Const cCode的汉字对应，按照上面的例子：Const cCode(0)和“欢”对应，Const cCode(1)和“迎”对应，Const cCode(2)和“欢”对应，Const cCode(3)和“迎”对应。原代码中其余不于汉字对应的Const cCode(x)可以删除。<br/>Const cCode(x)的值为该字符字型码的二进制两色点阵文本。<br/>新代码：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://loja.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Dim vNumberData(3)<br/>&#160;&#160;&#160;&#160;vNumberData(0) = &#34;0000000000000000000000000000000000000000010000000011111101111110000000010101000100000001010100010001000101010010000010101001001000001010000100100000011000011000000001100001100000000110001001000000100100100100000100010100001000100001010000100000000010000001&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(1) = &#34;1111111111111111111111111111111111011100011001111101101110011011111010111011101111111011101110111001101110111011111010111011101111101011101110111110101110111011111010111011101111101010001110111110110110100011111011111011111111010111101111111011100000000001&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(2) = &#34;1111111111111111111111111101111111101111110111111110100000000000111011111101111111101110000000111110100111011100110010111101111011001011110111101010101111011110111011000000000111101101110111111110111010111111111011110011111111101111000111111110100011100000&#34;<br/>&#160;&#160;&#160;&#160;vNumberData(3) = &#34;1111111111111111111111111111111111100000000000011110111101111101111011110111110111101111011111011110000000000001111011110111110111101111011111011110111101111101111000000000000111101111011111011110111101111101110111110111110111011111011111011111111111100001&#34;<br/></div></div><br/>那么如何获得Const cCode(x)的值呢？<br/>请先下载《大字涂鸦》1.10<br/><a href="http://soft.loja.cn" target="_blank" rel="external">http://soft.loja.cn</a><br/><br/>下载后运行，按照以下1－4操作。<br/><img src="http://loja.cn/blog/attachments/month_0701/b200712143442.gif" border="0" alt=""/><br/>高度和宽度必须为16！<br/>可以自行修改步骤2中的汉字，选中“转为二进制文本”然后点“涂鸦”，这样我们就得到了该汉字的Const cCode(x)值。然后粘贴到代码中保存即可！<br/>您还可以自定义设置字体和大小，粗体和斜体等。选中“二进制取反”后获得的二进制文本为该字反显后的文本。<br/><br/><br/><span style="color:Red">本站原创！转载请注明作者和出处。</span>]]></description>
		</item>
		
</channel>
</rss>
