自从上次有了一次破解验证码的经验后,就一直想自己写个像样点的验证码。今天无聊所以就写了,总体上来说还算很满意。就是有时复杂得肉眼都看不出是啥(这也跟图片太小有关系)。
这个验证码支持随机字体、字体大小、字体样式(普通、粗体、斜体)、字体颜色、自定义字符等。
代码中的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选项”,然后在弹出的对话框里单击“设置”按钮,选择“查看文件”按钮,在弹出的窗口中,就会显示硬盘里 ......
概念:其实思路非常简单,就像画画一样,你脑中的饼图想啥样子的,就把它在网页里画出来而已。相信大家小时候都画过画,不同的是,小时候,在纸上画,现在在网页上画。
这是我脑子里饼图的样子:<激光传真机>
C#后台示例代码:<激光一体机>
using System;
using System.Data;
using System.Configur ......
对于一个想学好ASP及asp.net的过来人来说,学习的过程是有趣及折磨人的,当你做出第一个实验的时候你的心情是激动的,我是毕业以来一步一步的自学过程中总结了一些好的经验让看到这篇文章的人少走一些弯路,下面写的都是针对初学者,也是我自己是怎么从零基础到现在可以开发一些东西的过程.
&nb ......