Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C#实现公式计算验证码的案例分享实现代码

C#实现公式计算验证码的案例分享实现代码

原创
作者头像
用户7718188
发布于 2022-11-06 12:26:10
发布于 2022-11-06 12:26:10
4640
举报
文章被收录于专栏:高级工程司高级工程司

实现代码

/// <summary>

/// 生成验证码图片

/// </summary>

/// <param name="code"></param>

/// <returns></returns>

public byte[] GenerateImg(string code)

{

Bitmap image = new Bitmap(code.Length * 25, 25);

Graphics g = Graphics.FromImage(image);

try

{

//清空图片背景色

g.Clear(Color.White);

//增加背景干扰线

Random random = new Random();

for (int i = 0; i < 30; 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.FromArgb(186, 212, 231)), x1, y1, x2, y2);

}

//定义验证码字体

Font font = new Font("黑体", 12, (FontStyle.Bold | FontStyle.Italic));

//定义验证码的刷子,这里采用渐变的方式,颜色可自定义

LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.FromArgb(67, 93, 230), Color.FromArgb(70, 128, 228), 1.5f, true);

//增加干扰点

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.DrawString(code, font, brush, random.Next(5, 50), random.Next(5, 10));

//图片边框

g.DrawRectangle(new Pen(Color.FromArgb(93, 142, 228)), 0, 0, image.Width - 1, image.Height - 1);

//保存图片数据

MemoryStream stream = new MemoryStream();

image.Save(stream, ImageFormat.Jpeg);

return stream.ToArray();

}

finally

{

g.Dispose();

image.Dispose();

}

}

private void button1_Click(object sender, EventArgs e)

{

GenerateCode();

}

private void GenerateCode()

{

string[] symbols = new string[]{

"+","-","*"

};

Random random = new Random();

string code = random.Next(0, 99) + symbols[random.Next(0,symbols.Length)] + random.Next(0, 99);

//这里拿到结果用来验证

DataTable dt = new DataTable();

string result = Convert.ToString(dt.Compute(code, null));

label1.Text = result;

byte[] bytes = GenerateImg(code);

MemoryStream ms = new MemoryStream(bytes);

Image image = System.Drawing.Image.FromStream(ms);

pictureBox1.Image = image;

}

代码解析:利用随机数分别取0到99的数字,然后做加减乘(为啥没除法?懒!因为还得算整除。),背景干扰什么的之前写过,此处不赘述。如果说你想考验下用户什么的,可以自己整个难度高一点的公式,比如:1+2*3之类的,反正直接让datatable去计算结果就行。。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C# 生成图形验证码
我们当用户登录系统时经常会用到图形验证码技术,要求用户识别图片中的内容,并正确输入,方可尝试登录。类似的场景还有用户注册或者涉及频繁敏感操作的提交表单。
初九之潜龙勿用
2024/06/20
1750
C# 生成图形验证码
验证码C#实现代码
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Drawing; //powered by http://outofmemory.cn/ name
代码伴一生
2021/11/02
6080
ASP.NET-实现图形验证码
​ASP.NET 实现图形验证码能够增强网站安全性,防止机器人攻击。通过生成随机验证码并将其绘制成图像,用户在输入验证码时增加了人机交互的难度。本文介绍了如何使用 C# 和 ASP.NET 创建一个简单而有效的图形验证码系统,包括生成随机验证码、绘制验证码图像以及将图像输出到客户端等步骤。这种验证码系统对于保护网站免受恶意攻击和机器人恶意行为具有重要意义。
Damon小智
2024/02/25
2930
ASP.NET-实现图形验证码
asp.net mvc 验证码
效果图 验证码类 namespace QJW.VerifyCode { //用法: //public FileContentResult CreateValidate() //
阿炬
2018/05/11
3.5K0
ASP.NET生成随机验证码代码和看不清切换验证码的小结
============================================================
阳光岛主
2019/02/19
1.9K0
网站上的验证码是怎么产生的?
目前,许多网站的会员登录时都要求输入验证码,尽管验证码的形式五花八门,但是所使用的原理基本是一样的,都是生成随机字符串,然后描绘成图片的形式输出。 验证码的生产主要分两部分:1是随机字符串的生成;2是生产验证码图片 1. 随机字符串的生成: 随机字符串生成有很多方法,这里介绍一种利用字符数组生产随机串的方法 代码如图1所示,自定义自己的随机字符数组,然后使用随机函数随机抽取4个字符组成一个随机字符串 /// <summary> /// 生成随机字符串 /// </su
程序员互动联盟
2018/03/15
1K0
C#生成验证码及在页面上无刷新更换的代码
页面内要放验证码的地方(层内,单元格内等)放置如下代码,这个是验证码的图图,输入验证码的文本框和调刷新方法的链接。
用户7108768
2021/11/02
9360
C#多曲线数据分析
明志德道
2023/10/21
3020
C#多曲线数据分析
C#生成随机验证码
使用YZMHelper帮助类即可 using System; using System.Web; using System.Drawing; using System.Security.Cryptography; namespace ProjectWenDangManage.Framework { /// <summary> /// 验证码类 /// </summary> public class Rand { #region 生成随机数字
易墨
2018/09/14
1.3K0
asp.net中的比较完美的验证码
本文转载:http://blog.csdn.net/zjk20108023/article/details/7836174
跟着阿笨一起玩NET
2018/09/18
4.1K2
asp.net中的比较完美的验证码
asp.net 加入验证码
验证码生成页面代码(清理掉没用的html) using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; using System.Threading; using System.Drawing.Text; using System.Drawing.D
冰封一夏
2019/09/11
2.4K0
实现验证码生成的功能
通常用于Web应用程序中的用户登录、注册、表单提交等场景,通过让用户输入验证码来防止恶意的自动化脚本提交表单,提高系统的安全性,防止垃圾信息的产生等。
云峥百宝箱
2025/04/16
1270
实现验证码生成的功能
GDI+ 不求人之-自己画个验证码
GDI+ 不求人之-自己画个验证码 😃😃😃😃😃😃🤔🤔🤔🤔🤔🤔 简单来说就是画图的 先小试牛刀画个小图形 在点击事件里写下几行画正方形: Graphics g = this.CreateGraphics(); Pen pen = new Pen(Brushes.Black); Rectangle rec = new Rectangle(50,50,80,80); g.DrawRectangle(pen,rec); 在点击
用户9857551
2022/06/28
4030
GDI+ 不求人之-自己画个验证码
.net core下验证码及二维码登录的实现
验证码实现的逻辑比较简单,生成一个随机数的图片,然后将随机数保存至cookie中,用于客户端校验。
Bug生活2048
2018/08/31
1.6K0
.net core下验证码及二维码登录的实现
去噪:用于验证码图片识别的类续(C#代码)
    自从发表了用于验证码图片识别的类(C#代码)后,不断有网友下载这个类后,问如何用于一些特定的验证码。总结一下网友们的提问,很多都是不会从复杂背景中提到干净的字符图片来,这主要就是一个去噪问题,即除去图片上的背景、干扰点、干扰线等信息。这当中要用到很多图像学数学算法,首先声明,本人不是学图像学的,以下方法理论说得不对,敬请多批评指正。 1、如何设前景/背景的分界值 UnCodebase类中有一个GetPicValidByValue( int dgGrayValue) 函数,可以得到前景的有效区域,常有
用户1258909
2018/07/03
2.1K0
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(16)-权限管理系统-漂亮的验证码
我们上一节建了数据库的表,但我发现很多东西还未完善起来,比如验证码,我们先做好验证码吧,验证码我们再熟悉不过了,为了防止恶意的登录,我们必须在登录页面加入验证码,下面我将分享一个验证码,这个是用C#画的,原理是,生成一个随机4位数,将其保存为session或者是cookie形式,将用户输入的验证码进行对比, 验证码可以是一个视图cshtml,或者是一个aspx页面,也可以是一个ashx一般处理程序,我们这里用ashx来显示 在App.Admin下的Core文件夹下新建一个一般处理文件verify_code.
用户1149182
2018/01/16
6790
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(16)-权限管理系统-漂亮的验证码
【愚公系列】2022年12月 .NET CORE工具案例-滑块验证码和拼图验证功能实现
滑块验证码是一种很常见的行为验证码,用户只需要轻轻滑动滑块填充拼图,即可完成安全验证。通常包括触发式、嵌入式和弹出式三种形式。
愚公搬代码
2022/12/09
1.4K0
【愚公系列】2022年12月 .NET CORE工具案例-滑块验证码和拼图验证功能实现
基于Python+Flask实现一个简易网页验证码登录系统案例
在当今的互联网世界中,为了防止恶意访问,许多网站在登录和注册表单中都采用了验证码技术。验证码可以防止机器人自动提交表单,确保提交行为背后有一个真实的人类用户。
子午Python
2023/09/21
1.2K0
(三十四)c#Winform自定义控件-Tab页
GitHub:https://github.com/kwwwvagaa/NetWinformControl
冰封一夏
2019/09/11
1.6K0
(三十四)c#Winform自定义控件-Tab页
java验证码图片工具类_工具类:VerifyCode.java:图片验证码
[JavaWeb工具类目录](http://baike.xsoftlab.net/view/1059.html) [http://baike.xsoftlab.net/view/1059.html](http://baike.xsoftlab.net/view/1059.html)
全栈程序员站长
2022/09/14
1K0
推荐阅读
相关推荐
C# 生成图形验证码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档