ASP.NET graphical verification code generation practice
Why use graphical verification code
In order to prevent attackers from writing programs to repeatedly submit forms and causing trouble for other users and website operations, it is generally necessary to use graphical verification before submitting the form. Code is verified to confirm that the submission operation is a human operation and not a machine batch operation.
Principle Analysis
When generating graphic verification codes, two technologies are mainly used:
1. Generate random Numbers or letters
2. Convert the generated random numbers or random letters into image format and add noise to the image and display it.
Generation method:
1. Front-end control code
<asp:TextBox ID="txtValidateNum" runat="server" Width="98px"></asp:TextBox> <asp:Image ID="Image1" runat="server" Height="22px" Width="58px" ImageUrl="~ValidateNum.aspx"/>请输入图片中验证码!
2. ValidateNum.aspx page processing steps
(1) Randomly generate a random string of length N. The value of N can be set by the developer. The string contains numbers, letters, etc.
(2) Create a randomly generated string into a picture and display it.
(3) Save the verification code
First create a CreateRandomNum(int n) method in the ValidateNum .aspx.cs file to randomly generate a random string of length n. In order to avoid generating repeated random numbers, the random number results will be recorded through variables. If the same value appears in the last random number, the method itself will be called to ensure that different random numbers are generated. The code is as follows:
//生成随机字符串 private string CreateRandomNum (int n) { string allChar = "0,1,2,3,4,5,6,7,8,9,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"; string[] allCharArray = allChar.Split(',');//拆分成数组 string randomNum = ""; int temp = 1; Random rand = new Random(); for(int i = 0;i < n;i++) { if(temp != -1) { rand = new Random(i * temp *((int)DateTime.Now.Ticks)); } int t = rand.Next(35); if(temp == t) { return CreateRandomNum(n); } temp = t; randomNum += allCharArray[i]; } return randomNum; }
Then create the CreateImage(string validateNum) method based on the generated random string to further generate a graphic code. In order to further ensure security, add some interference colors to the graphic verification code, such as random background patterns, Word processing, etc. The code is as follows:
//生成图片 private void CreateImage(string validateNum) { if(validateNum == null || validateNum.Trim() == String.Empty) return; //生成Bitmap图像 System.Drawing.Bitmap image = new System.Drawing.Bitmap(validateNum.Length * 12 + 10,22); Graphics g = Graphics.FromImage(image); try { //生成随机生成器 Random random = new Random(); //清空图片背景色 g.Clear(Color.White); //画图片的背景噪音线 for(int i = 0; i < 25; i++) { int x1 = random.Next(image.Width); int x2 = random.Next(image.Width); int y1 = random.Next(image.Height); int y2 = random.Next(image.Height); g.DrawLine(new Pen(Color.Silver),x1,y1,x2,y2); } Font font = new System.Drawing.Font("Arial",12,(System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)); System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true); g.DrawString(validateNum,font,brush,2,2); //画图片的前景噪音点 for(int i = 0;i<100;i++) { int x = random.Next(image.Width); int y = random.Next(image.Height); image.SetPixel(x,y,Color.FromArgb(random.Next())); } //画图片的边框线 g.DrawRectangle(new Pen(Color.Silver),0,0,image.Width - 1,image.Height - 1); System.IO.MemoryStream ms = new System.IO.MemoryStream(); //将图像保存到指定的流 image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms.ToArray()); } finally { g.Dispose(); image.Dispose(); } }
Finally, in the page loading event Page_Load, create and display the image of the verification code string, and save the verification string in the Session.
protected void Page_Load(object sender,EventArgs e) { if(!IsPostBack) { string validateNum = CreateRandomNum(4);//生成4位随机字符串 CreateImage(validateNum);//将随机字符串绘制成图片 Session["ValidateNum"] = validateNum; //将随机字符串保存在Session中 } }
At this point, a simple image verification code generation algorithm has been written. Of course, you can add richer security settings on this basis, such as Session expiration time, etc.
The above is the detailed content of ASP.NET graphical verification code generation practice. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

What should I do if Google Chrome does not display the verification code image? Sometimes you need a verification code to log in to a web page using Google Chrome. Some users find that Google Chrome cannot display the content of the image properly when using image verification codes. What should be done? The editor below will introduce how to deal with the Google Chrome verification code not being displayed. I hope it will be helpful to everyone! Method introduction: 1. Enter the software, click the "More" button in the upper right corner, and select "Settings" in the option list below to enter. 2. After entering the new interface, click the "Privacy Settings and Security" option on the left. 3. Then click "Website Settings" on the right

PHP image processing case: How to implement the verification code function of images. With the rapid development of the Internet, verification codes have become one of the important means to protect website security. Verification code is a verification method that uses image recognition technology to determine whether the user is a real user. This article will introduce how to use PHP to implement the verification code function of images, and come with code examples. Introduction A verification code is a picture containing random characters. The user needs to enter the characters in the picture to pass the verification. The main process of implementing verification code includes generating random characters and drawing characters into pictures.

The virtual number can receive the verification code. As long as the mobile phone number filled in during registration complies with the regulations and the mobile phone number can be connected normally, you can receive the SMS verification code. However, you need to be careful when using virtual mobile phone numbers. Some websites do not support virtual mobile phone number registration, so you need to choose a regular virtual mobile phone number service provider.

“The most annoying thing is all kinds of weird (or even perverted) verification codes when you log into a website.” Now, there is good news and bad news. The good news is: AI can do this for you. If you don’t believe me, here are three real cases of increasing recognition difficulty: And these are the answers given by a model called “Pix2Struct”: Are they all accurate and word for word? Some netizens lamented: Sure, the accuracy is better than mine. So can it be made into a browser plug-in? ? Yes, some people said: Even though these cases are relatively simple, if you just fine-tune it, I can't imagine how powerful the effect will be. So, the bad news is - the verification code will soon be unable to stop the robots! (Danger danger danger...) How to do it? Pix2St

Failure to receive the verification code on your mobile phone is caused by network problems, mobile phone settings problems, mobile phone operator problems and personal settings problems. Detailed introduction: 1. Network problems. The network environment where the mobile phone is located is unstable or the signal is weak, which may cause the verification code to be unable to be delivered in time; 2. Mobile phone setting problems. The text message or voice function of the mobile phone is accidentally turned off, or the The verification code sending number is added to the blacklist, resulting in the verification code not being received normally; 3. Mobile phone operator issues, the mobile phone operator may have malfunctions or maintenance, resulting in the verification code not being delivered in time, etc.

With the development of the Internet and the popularity of smartphones, the verification code login function is adopted by more and more websites and applications. Verification code login is a login method that verifies the user's identity by entering the correct verification code to improve security and prevent malicious attacks. In PHP development, implementing a simple verification code login function is not complicated and can be completed through the following steps. Create a database table First, we need to create a table in the database to store verification code information. The table structure can contain the following fields: id: auto-incrementing primary key phon

How to create a verification code image using PHP? CAPTCHA is a commonly used method to verify whether the user is a human and not a machine. On websites, we often see verification code images, which require users to enter random characters or numbers displayed on the image to complete operations such as login, registration, and commenting. This article will introduce how to use PHP to create a verification code image and provide specific code examples. 1. PHPGD library To create a verification code image, we need to use PHP's GD library. The GD library is an extension for processing images.

Today I am sharing with you an OCR application - ddddocr automatically recognizes verification codes. The first four d's are the first pinyin of "daidai younger brother". [/Laughter]. Project address: https://github.com/sml2h3/ddddocr. When using it, use the pip command to install it directly, just pipinstalldddddocr. The core technology of OCR includes two aspects. One is the target detection model to detect the text in the picture, and the other is the text recognition model to convert the text in the picture into text. The first type of verification codes is the simplest. They do not have complex background images, so the target detection model can be omitted and the images can be directly sent to the text recognition model. The identification code is as follows: impor
