Đăng nhập | Đăng ký

Danh sách thành viên | Cá nhân | Nhà đất, bất động sản

Diễn đàn    ASP.NET & Sharepoint MOSS, WSS 2007    Captcha version 2.0

Thành viênNội dung
tieuphu

Thống chế Erich von Manstein
48  bài
30-05-2009 02:27:28
Lần trước post 1 bài về captcha rồi lần này thêm con nữa cho vui. Con này an toàn cao hơn vì sử dụng nhiều loại hình chống bot regconition.

using System;
using System.Data;
using System.Drawing;

namespace captcha
{
public partial class _Default : System.Web.UI.Page
{
private Bitmap TransformImage(Bitmap bmp, Random rnd)
{
int width = bmp.Width;
int height = bmp.Height;
double distort = rnd.Next(5, 15) * (rnd.Next(10) == 1 ? 1 : -1);

// Copy the image so that we're always using the original for source color
using (Bitmap copy = (Bitmap)bmp.Clone())
{
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
// Adds a simple wave
int newX = (int)(x + (distort * Math.Sin(Math.PI * y / 84.0)));
int newY = (int)(y + (distort * Math.Cos(Math.PI * x / 44.0)));
if (newX < 0 || newX >= width) newX = 0;
if (newY < 0 || newY >= height) newY = 0;
bmp.SetPixel(x, y, copy.GetPixel(newX, newY));
}
}
}

return bmp;
}

private Brush GetBrush(Random rnd)
{
Brush brush = Brushes.Black;
int ir = rnd.Next(9);
switch (ir)
{
case 0:
brush = Brushes.DarkCyan;
break;
case 1:
brush = Brushes.DarkGreen;
break;
case 2:
brush = Brushes.Crimson;
break;
case 3:
brush = Brushes.DarkViolet;
break;
case 4:
brush = Brushes.DarkOliveGreen;
break;
case 5:
brush = Brushes.DarkOrchid;
break;
case 6:
brush = Brushes.DarkTurquoise;
break;
}
return brush;
}

private Font GetFont(Random rnd)
{
float sz = 15 + rnd.Next(4);
Font f = new Font("Arial", sz);
int i = rnd.Next(4);
switch(i)
{
case 0: f = new Font("Tahoma", sz, FontStyle.Bold);break;
case 1: f = new Font("Verdana", sz, FontStyle.Bold); break;
case 2: f = new Font("Times New Roman", sz, FontStyle.Bold); break;
}
return f;
}

private void Drawing(Graphics gr, string s, PointF p, Random rnd)
{
float x = p.X;
float y = p.Y;
char [] c = s.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
string ch = c [ i ] .ToString();
Brush brush = GetBrush(rnd);
Font font = GetFont(rnd);
SizeF sf = gr.MeasureString(ch, font);
gr.DrawString(ch, font, brush, new PointF(x, y + (rnd.Next(7) - 3)));
x = x + sf.Width / 2;
}
}

private Pen GetPen(Random rnd)
{
Pen p = Pens.Black;
int i = rnd.Next(4);
switch (i)
{
case 0: p = Pens.Crimson; break;
case 1: p = Pens.DarkCyan; break;
case 2: p = Pens.DarkOliveGreen; break;
}
return p;
}

protected void Page_Load(object sender, EventArgs e)
{
Random rnd = new Random();
string captcha = Guid.NewGuid().ToString("N").Substring(0, 5);
Session ["CAPTCHA"] = captcha;
int wid = 100;
int hei = 40;
PointF p = new PointF(10 + rnd.Next(14), 4 + rnd.Next(2));

Bitmap bmp = new Bitmap(wid, hei);
Graphics gr = Graphics.FromImage(bmp);
System.Drawing.Rectangle rec = new Rectangle(0, 0, wid, hei);
gr.FillRectangle(Brushes.White, rec);

Drawing(gr, captcha, p, rnd);
//bmp = TransformImage(bmp, rnd);
int max = rnd.Next(2);
for (int i = 0; i < 2 + max; i++)
{
Pen pen = GetPen(rnd);
Point p1 = new Point(rnd.Next(wid), rnd.Next(hei));
Point p2 = new Point(rnd.Next(wid), rnd.Next(hei));
gr.DrawLine(pen, p1, p2);
}

Response.ContentType = "image/jpeg";
Response.Clear();
bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
bmp.Dispose();
Response.Flush();
Response.End();

}
}
}
 
tieuphu

Thống chế Erich von Manstein
48  bài
30-05-2009 02:35:24
http://coder.awas.vn/downloads.ashx?id=72a215c9ff644b36a4641ff58812e603

code đây thưa bà con!
---
Miệt mài, miệt mài ...
http://awas.vn
 
qqqqq


2  bài
18-12-2010 10:59:25
Thanks nhieu nha !!!!!!!!!!!!!!!!!!!!!!!!
 

Chủ đề gần đây :

Cùng loại :

 
Tên file Người đăng Ngày Lượt
vspforum.zip
Ma nguon vspforum ngay xua
aspnet 4/18/2023 6:38:37 AM 6
pdfjs.rar
pdfjs 2017 : hiển thị tốt trên iphone 11, 12, 13 không lỗi, bản 2012 sẽ lỗi trên iphone
aspnet 6/21/2022 11:52:48 AM 2
pdfjs2.rar
Xem file pdf bằng viewer.hml cua pdfjs (thư viện chuẩn mozilla) 2012. https://mozilla.github.io/pdf.js/getting_started/#download có thể download bản prebuild tại đây
aspnet 6/21/2022 11:52:04 AM 2
runner.zip
using three.js, orbitcontrol to view an object move random on map. Di chuyển 1 đồ vật ngẫu nhiên trên bản đồ, sử dụng với demo nhân viên di chuyển trong văn phòng. Toàn js download về là chạy
aspnet 12/5/2019 5:55:14 PM 0
gmap.zip
google map + marker
aspnet 7/17/2019 2:25:05 PM 1
vinsmarthomeservice.zip
java post json to api, use AsyncTask, event listener
aspnet 7/9/2019 5:00:10 PM 1
fblogin.zip
Login facebook bang javascript SDK
aspnet 7/9/2019 9:16:37 AM 0
autocomplete-location.zip
autocomplete location geo from google place, html + js
aspnet 7/4/2019 4:37:55 PM 2
WebAPI.zip
api for android access db (v1.0.0)
aspnet 7/4/2019 9:14:17 AM 8
KydientuPdf.zip
Ky dien tu file PDF su dung itextsharp
aspnet 4/9/2019 3:30:37 PM 9
GooglePlusLogin.zip
Login Google Plus account, C#, web asp.net ver2.0. Simple connect google APIs. Send key, get token, get full account info
aspnet 6/1/2018 10:41:12 AM 11
WebApplication1.rar
Sample su dung thuat toan ma hoa tripDES, co khoa bi mat (privateKey)
aspnet 3/30/2018 10:06:35 PM 8
NETMdbToolsTestApp.rar
dotNet MdbTools for Access 2003/2007/2016 without Microsoft Jet Engine, source C#, https://www.codeproject.com/Articles/283626/MsAccess-MdbTools-with-MFC-and-NET
aspnet 3/26/2018 11:43:16 PM 1
Cryptography_MD5_TriDES_src.zip
Thuật toán mã hóa 2 chiều TriDES, gồm Encrypt và Decrypt, aspnet 2.0
aspnet 3/22/2018 11:20:44 AM 3
mvc.rar
sample project MVC on C#
aspnet 3/20/2018 9:25:36 AM 9
EduPortal.rar
Edu portal frame work for VB.NET
aspnet 3/14/2018 12:00:41 AM 13
AutoEntity.rar
Gencode vb.net visual studio 2015. dotnet v2.0
aspnet 3/13/2018 11:59:16 PM 2
GenCode.rar
Gencode XML, XSLT, Info, DAL .. engine enterprise for quick app database
aspnet 2/5/2018 9:37:28 AM 9
DataXml.rar
Read DB from SQL to XML file, Convert string TCVN to Unicode
aspnet 1/29/2018 2:15:45 PM 4
DesktopModules.rar
Module quản lý tin tức, CMS, quản lý nhóm tin trên dotnetnuke 6.x
aspnet 3/7/2013 4:47:49 PM 1714
CODERVN.NET
Công ty cổ phần công nghệ và dịch vụ AWAS
Công ty cổ phần công nghệ và dịch vụ AWAS, cổng thông tin, chính phủ điện tử, phần mềm quản lý điểm, quản lý sinh viên, http://awas.vn, http://awas.com.vn, phần mềm ứng dụng, dịch vụ công trực tuyến, thiết kế website, thiet ke web, thiết kế web, điện lực, phần mềm quản lý đào tạo, cao đẳng, đại học,cổng thông tin tích hợp, cổng thông tin điện tử, webportal, thư viện điện tử, electric library, library online, email, web, quản lý quan hệ khách hàng, CRM, dịch vụ công trực tuyến, phần mềm hành chính một cửa,