自从上次有了一次破解验证码的经验后,就一直想自己写个像样点的验证码。今天无聊所以就写了,总体上来说还算很满意。就是有时复杂得肉眼都看不出是啥(这也跟图片太小有关系)。
这个验证码支持随机字体、字体大小、字体样式(普通、粗体、斜体)、字体颜色、自定义字符等。
代码中的libFont是字体库,libChar是字符库,libColor是颜色库,可以自己扩充。
两个while循环,第一个是画干扰线的,第二个是画字符的,线和字符的多和少可以自己控制。
最后是Session["SAFECODE"],自己也可以修改,默认是把所有字符都转成大写的。
其它的就没什么好说的了,看代码吧。
<%@ Page Language="C#" %>
<%@ import Namespace="System.IO" %>
<%@ import Namespace="System.Web" %>
<%@ import Namespace="System.Drawing" %>
<mce:script runat="server"><!--
// 样式库 格式: Name|Size(em)|Style
private static string[] libFont = new string[]
{
"宋体|12|Bold", "宋体|12|Italic", "宋体|12|Regular",
"Arial|12|Bold", "Arial|12|Italic", "Arial|12|Regular",
"Tahoma|12|Bold", "Tahoma|12|Italic", "Tahoma|12|Regular",
"Verdana|12|Bold", "Verdana|12|Italic", "Verdana|12|Regular"
};
// 字符库
private static string[] libChar = new string[]
{
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"
};
// 颜色库
private static string[] libColor = new string[]
{
"Blue", "Red", "Green", "DarkGreen", "DarkBlue", "Tomato"
};
private void Page_Load(object sender, System.EventArgs e)
{
GetSafeCode();
}
private void GetSafeCode()
{
Random r = null;
Bitmap bmp = null;
Graphics g = null;
MemoryStream stream = null;
string[]
在Web编程过程中,存在着很多安全隐患。比如在以前的ASP版本中,Cookie为访问者和编程者都提供了方便,并没有提供加密的功能。打开IE浏览器,选择“工具”菜单里的“Internet选项”,然后在弹出的对话框里单击“设置”按钮,选择“查看文件”按钮,在弹出的窗口中,就会显示硬盘里 ......
虽然说ASP.NET属于安全性高的脚本语言,但是也经常看到ASP.NET网站由于过滤不严造成注射.由于ASP.NET基本上配合MMSQL数据库架设 如果权限过大的话很容易被攻击. 再者在网络上找不到好的ASP.NET防注射脚本,所以就自己写了个. 在这里共享出来旨在让程序员免除SQL注入的困扰.
我写了两个版本,VB.NET和C#版本方便不同程序间使用 ......
asp.net中的html控件runat=server时的映射 1、标准xhtml标签:http://blog.csdn.net/TangZhongxin/archive/2009/07/31/4398487.aspx 2、绝大多数标签都映射到“System.Web.UI.HtmlControls.HtmlGenericControl”,它们的共同特性是“信息只读,仅供显示的标记”:
div,span,p,h1,h2,h3,h4,h5,h6,ul,li,dl,dt,dd, ......
概念:其实思路非常简单,就像画画一样,你脑中的饼图想啥样子的,就把它在网页里画出来而已。相信大家小时候都画过画,不同的是,小时候,在纸上画,现在在网页上画。
这是我脑子里饼图的样子:<激光传真机>
C#后台示例代码:<激光一体机>
using System;
using System.Data;
using System.Configur ......