Csharp验证码技术--非常详细
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
p ia e s r gs a ia o = ~ : r t ti V l t r v n d
/ 创 建 一 个 Sr g ul r 象 / tn B ie 对 i d
S r g i e b = n w tigB i e ( L n) ti Bul r n d s e Sr n ul r n e : d Ra d m = n w n o ( : no r d e Ra d m ) f r it o( n i= 0 :i< n e ;i + ) Ln + { itn e = r . x (L te Ls . e g h 一 1 : n d x i d Ne t e t rit L n t )
)
页 面 V t a I aeap ad t m g.sx用来显 示验 证码 字符 串 的图 片 , i e 并在该 图片上显示验证码字符 串。为了使得 验证码字符串显得
难 以辨 认 ,该 系统 在 输 出验 证 码 字 符 串 的 同 时 ,随 机 设 置 了 字 符 串 的 FnSy ottl e属 性 和 Buh 属 性 。 函 数 CetR n o — rs ra adm e FnS l( t ad m 根 据 随 机 数 rno 产 生 获 取 FnSy ott ei n o ) y nr adm ot l t e属
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
实用第一 智慧密集
)
B u h it2】= S se r s e . t e a t n x : r s Ls 【 y t mB u h s Ac i C pi Te t v o B u h it31 r s Ls 【 】= S se r s e . id wT x ; y t mB u h s W n o e t
证 的图片 。只有 当用户 肉跟识 别出其 中的验证 码信 息 ,输入表
单 并 提 交 网站 验 证 ,验 证 成 功 后 才能 使 用 该 网 站提 供 的 某 项 特 定 功 能 。验 证 码 的 主要 用 途 是 用 : 防止 有 人 利 用 机 器人 自动 批 : 量 注 册 、对特 定 的 注册 用户 用 特 定 程 序 暴 力 破 解 方 式 进 行 不 断 的登 录 、灌 水 。在 一些 常见 的 大 型 网站 ,例 如 百度 贴 吧 ,用 户 在未 登 录 的情 况 下进 行 发 贴 就需 要输 入验 证 码 ,这 样 可 以避 免 某些 恶 意 的 大 规 模 匿 名 回 帖 的 攻 击 。 对 于 服 务 器 本 身 来 讲 ,如 果 不 能 有 效 验 证 并 拒 绝 非 法操 作 , 会 导 致 其 系 统 资 源 的 严 重 就
/ 创建 B / mp位 图
saia r并使 用 I ae 件 显 示 ,I ae 件 的 图像 由 V i - Vl t, do mg控 mg控 l a ad t l aeap 创 建 ,具 体 设 计 步 骤 如 下 : o m g.sx r ()随机 产生一个 长度 为 N ( 的值可 以由程序 设置 ) 1 N
关键词
一
、
引言
在 网 站 登 录 、发 表 评 论 时 ,往 往 都 需 要 用 户 输 入验 证 码 。
请 输入您在 此 图片 中看 到 的字 符 :
验证图片;
验证字
图片 验 证 机 制 就 是 指 根 据 一 定 的随 机 数 产 生算 法来 产 生 的 一 串 随 机 数 字 或 符 号 ,并 加 入 一 些 干 扰 像 素 最 终 生成 相应 的 用 于 验
( )清 空 图 片背 景 色 。 4
耗费 、降低网站性 能甚至使程序崩溃。一般来讲 ,自动注册或
者 表 单 自动 填 写 程 序 不 能 有 效 地 识 别 图 片 验 证 码 中 的数 字 或 字 符 ,因此 从 一 定 程度 上 实现 了阻 挡 攻 击 的作 用 。
( )画图片的背 景噪音线 和前 景噪音点 。 5
s n ra V l a Sr g i L n 首 先 定 义 一 个 Sr g ule t gCet adt tn ( tn e ) i r e i e i n tnB i r i d 对 象 s, r. et et Ls Lnt 一 1 产 生 对 象 L tri 的 b d N x(Lt ri. e g e t h ) e eLs t t
f r iti= O i< 1 o (n O:i +) +
{
证码字符 串。页面 D f l ap e u1 sx的设计界面如图 1 a . 所示 :
2 .页 面初 始 化
}
L te Ls . p d(. o tig( ) e t ritAp en iT S r n ):
页面初始 化实现了显示 验证 码的功能 ,其中验证码 由函数 Cet aia Sr g it Ln 创 建 一 个 长 度 为 6位 的 字 符 串 ra V l t tn ( e ) e de i nn
pia eBrs 】Brs Ls r t u h【 v u h it= n w u h【 2】 e Brs 3 :
p ia ev i a e L a be t e d r y tm. v nA g ) r t odP g v o d o jc n e,S se E e t rse f s
{
的验证码字符 串,该字符 串可 以包含数字 、大写字母 、小写字
L te Ls . p n ( c a ) ( t + I )T S r g( ) e t r itAp e d( ( h r ( i ) n A ) . o ti ) : n
维普资讯 http://www.cqvip.com
维普资讯 http://www.cqvip.com
PO 删 RG
L 8l E Hale Waihona Puke Baidu I 聃
图 片 验 证 码 技 术
于晓静 管建和
摘
要
本 文介 绍 了一 种 实现 图 片验 证 码 的技 术 及其 方 法 。它 可以有 效 防止 非法 用户进 行程
序 恶意登 录进行 破 坏等 问题 。 C ,验证 码 , 随机 数 ,前 景噪 音 点 ,背景噪 音 线 #
i( e u s . a a V l ao 】!=n l f R q e t P rms【 ai t r d u1 )
{
/ 获取验证字符串 /
s lao Vai t r= R qu s . aa d e e t P rms【 l ao 】T S r g( : Vai t r . o ti ) d n
代码如下 :
pr a esr gCrae a d t S r g(n L n i t ti e t V ¨ ae ti itn e ) v n n {
字符 串的图 片的步骤 如下 :函数 首先调 用函数 Ii rsLs( n Buh t ) t i 初始化 保存 Buh对象 的数组 Buh s 获取服 务器端 产生 的 rs rsL t i ; 验证码字符 串 ;创建一个 B MP位 图;在 B MP位 图上输 出验证 码字符 串;设置输出格式 ,并输出该页面。实现代码如下:
f rit o( n i= O :i< 2 6;i +) +
{
L te Ls . p n ( c a ) ( t + i)To r g( ) e t rit Ap e d( ( h r ( i ) n a ) . Sti ) : n } f rit o( n i= O :i< 2 ;i + ) 6 +
_
{
/ 初 始 化 /
Ii r s it ) nt u hLs ( : B
s . p d( e t rit id x】T S r g( ) b Ap en L te Ls 【 e . o ti ) : n n
L t r it R m o ef d x ) e t Ls. e v n e ;1 : e i ) rt r ( b T S r gf ) eu n s . o ti ) : n )
二 、关 键 技 术
1 面 设 计 .界
也 可 以根 据 自己 的 需要 加 入 其 他 字 符 。Ii et Ls ) nt tri ( 的程 序 代 L e t
码如下:
p iaev i i e t r i ( r t od I t te Ls ) v L n t
{
首 先 在 页 面 D f l ap e ut sx上 添 加 两 个 B tn控 件 、 一 个 a . uo t TxB x控 件 、一 个 I ae 件 、一 个 验 证 控 件 ,它 们 的 名 称 eto mg控 分 别 为 C a gB t n S r、 V l ae V ia l ae r 。 hne ut 、 ue o ai t、 ad t m g 、 f d l e v C a gB t n用 来 生 成 另 一 张 图 片 。 其 中 控 件 V l ao 用 来 输 hn e ut o ai t d r 入 验 证 码 ,r 用 来 实 现 验 证码 的 非 空 验 证 ,I ae用来 显示 验 f v mg
母 等 .
磷 馨 磬
H 举牟 蔚覃
蒜 赫 一 譬 莳 ,
: 礴 生 寺
笺 ‘ 警 自 f 靼 唔薯 ’
图 1 程 序 主 界 面
( )创 建 一 张 图 片 , 以用 于 显 示 验 证 码 字 符 串 。 2
( )在图 片上 显示验 ' 码字符 串。其 中 ,用户每 次刷 新 3 u E 时所创建 的字符串是不相同的。
) )
)
添 加 p vt r gCetV l a Sr g i Ln 创 建 随 机验 i e tn r a s i ra adt tn ( t e ) e i e i nn
证码 字符 串 ,其 中 n e L n为验证码 字符 串的长度 。 函数 p vt i r ae
( ) 画 图 片 的边 框 线 。 6 函数 Ii e eLs(创 建 验 证 码 字 符 串 的 所 有 字 符 ,并 把 nt t ri ) Lt t 这 些 字 符 保 存 在 对 象 L t ri f 其 中 ,函 数 Ii et Ls( et Ls f 。 e tJ n Lt ri ) t e t 添加 的字 符 主 要包 括 数 字 、大 写 字 母 、小 写 字 母 等 3 字 符 , 类
p bi ata ca s V l a e ma e :S s e . e . . a e u l p ril ls a i t l g c d y t m W b UI P g
/ 初始化 /
Ii et rit ) nt te Ls ( : L
{
pi t a o lsr gI g P t I g s V lao . g : r aer d n tn v e y i ma e ah= ma e / ad trj i P
页 面 V l a I ae ap a dt m g .sx调 用 函 数 poet o aeLa i e rt e vi P g_od cd d (bet edrE et rs ) 始 化 ,该 页 面创 建 并 显 示 验 证 码 ojc sne, vnAg 初 e
索引 ,并添加 Lt ri [ dx . otn (到验证码字 符串 中, e eLs i e 】T Sr g ) t tn i 然后删 除刚才被 添加 的字 符。这个 过程一直到产生的验证码字 符 串的长度 为 n e .函数 CetV l a Sr g it L n 的程序 Ln ra a dt tn ( e ) e i e i nn
/ 创 建 一 个 Sr g ul r 象 / tn B ie 对 i d
S r g i e b = n w tigB i e ( L n) ti Bul r n d s e Sr n ul r n e : d Ra d m = n w n o ( : no r d e Ra d m ) f r it o( n i= 0 :i< n e ;i + ) Ln + { itn e = r . x (L te Ls . e g h 一 1 : n d x i d Ne t e t rit L n t )
)
页 面 V t a I aeap ad t m g.sx用来显 示验 证码 字符 串 的图 片 , i e 并在该 图片上显示验证码字符 串。为了使得 验证码字符串显得
难 以辨 认 ,该 系统 在 输 出验 证 码 字 符 串 的 同 时 ,随 机 设 置 了 字 符 串 的 FnSy ottl e属 性 和 Buh 属 性 。 函 数 CetR n o — rs ra adm e FnS l( t ad m 根 据 随 机 数 rno 产 生 获 取 FnSy ott ei n o ) y nr adm ot l t e属
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
实用第一 智慧密集
)
B u h it2】= S se r s e . t e a t n x : r s Ls 【 y t mB u h s Ac i C pi Te t v o B u h it31 r s Ls 【 】= S se r s e . id wT x ; y t mB u h s W n o e t
证 的图片 。只有 当用户 肉跟识 别出其 中的验证 码信 息 ,输入表
单 并 提 交 网站 验 证 ,验 证 成 功 后 才能 使 用 该 网 站提 供 的 某 项 特 定 功 能 。验 证 码 的 主要 用 途 是 用 : 防止 有 人 利 用 机 器人 自动 批 : 量 注 册 、对特 定 的 注册 用户 用 特 定 程 序 暴 力 破 解 方 式 进 行 不 断 的登 录 、灌 水 。在 一些 常见 的 大 型 网站 ,例 如 百度 贴 吧 ,用 户 在未 登 录 的情 况 下进 行 发 贴 就需 要输 入验 证 码 ,这 样 可 以避 免 某些 恶 意 的 大 规 模 匿 名 回 帖 的 攻 击 。 对 于 服 务 器 本 身 来 讲 ,如 果 不 能 有 效 验 证 并 拒 绝 非 法操 作 , 会 导 致 其 系 统 资 源 的 严 重 就
/ 创建 B / mp位 图
saia r并使 用 I ae 件 显 示 ,I ae 件 的 图像 由 V i - Vl t, do mg控 mg控 l a ad t l aeap 创 建 ,具 体 设 计 步 骤 如 下 : o m g.sx r ()随机 产生一个 长度 为 N ( 的值可 以由程序 设置 ) 1 N
关键词
一
、
引言
在 网 站 登 录 、发 表 评 论 时 ,往 往 都 需 要 用 户 输 入验 证 码 。
请 输入您在 此 图片 中看 到 的字 符 :
验证图片;
验证字
图片 验 证 机 制 就 是 指 根 据 一 定 的随 机 数 产 生算 法来 产 生 的 一 串 随 机 数 字 或 符 号 ,并 加 入 一 些 干 扰 像 素 最 终 生成 相应 的 用 于 验
( )清 空 图 片背 景 色 。 4
耗费 、降低网站性 能甚至使程序崩溃。一般来讲 ,自动注册或
者 表 单 自动 填 写 程 序 不 能 有 效 地 识 别 图 片 验 证 码 中 的数 字 或 字 符 ,因此 从 一 定 程度 上 实现 了阻 挡 攻 击 的作 用 。
( )画图片的背 景噪音线 和前 景噪音点 。 5
s n ra V l a Sr g i L n 首 先 定 义 一 个 Sr g ule t gCet adt tn ( tn e ) i r e i e i n tnB i r i d 对 象 s, r. et et Ls Lnt 一 1 产 生 对 象 L tri 的 b d N x(Lt ri. e g e t h ) e eLs t t
f r iti= O i< 1 o (n O:i +) +
{
证码字符 串。页面 D f l ap e u1 sx的设计界面如图 1 a . 所示 :
2 .页 面初 始 化
}
L te Ls . p d(. o tig( ) e t ritAp en iT S r n ):
页面初始 化实现了显示 验证 码的功能 ,其中验证码 由函数 Cet aia Sr g it Ln 创 建 一 个 长 度 为 6位 的 字 符 串 ra V l t tn ( e ) e de i nn
pia eBrs 】Brs Ls r t u h【 v u h it= n w u h【 2】 e Brs 3 :
p ia ev i a e L a be t e d r y tm. v nA g ) r t odP g v o d o jc n e,S se E e t rse f s
{
的验证码字符 串,该字符 串可 以包含数字 、大写字母 、小写字
L te Ls . p n ( c a ) ( t + I )T S r g( ) e t r itAp e d( ( h r ( i ) n A ) . o ti ) : n
维普资讯 http://www.cqvip.com
维普资讯 http://www.cqvip.com
PO 删 RG
L 8l E Hale Waihona Puke Baidu I 聃
图 片 验 证 码 技 术
于晓静 管建和
摘
要
本 文介 绍 了一 种 实现 图 片验 证 码 的技 术 及其 方 法 。它 可以有 效 防止 非法 用户进 行程
序 恶意登 录进行 破 坏等 问题 。 C ,验证 码 , 随机 数 ,前 景噪 音 点 ,背景噪 音 线 #
i( e u s . a a V l ao 】!=n l f R q e t P rms【 ai t r d u1 )
{
/ 获取验证字符串 /
s lao Vai t r= R qu s . aa d e e t P rms【 l ao 】T S r g( : Vai t r . o ti ) d n
代码如下 :
pr a esr gCrae a d t S r g(n L n i t ti e t V ¨ ae ti itn e ) v n n {
字符 串的图 片的步骤 如下 :函数 首先调 用函数 Ii rsLs( n Buh t ) t i 初始化 保存 Buh对象 的数组 Buh s 获取服 务器端 产生 的 rs rsL t i ; 验证码字符 串 ;创建一个 B MP位 图;在 B MP位 图上输 出验证 码字符 串;设置输出格式 ,并输出该页面。实现代码如下:
f rit o( n i= O :i< 2 6;i +) +
{
L te Ls . p n ( c a ) ( t + i)To r g( ) e t rit Ap e d( ( h r ( i ) n a ) . Sti ) : n } f rit o( n i= O :i< 2 ;i + ) 6 +
_
{
/ 初 始 化 /
Ii r s it ) nt u hLs ( : B
s . p d( e t rit id x】T S r g( ) b Ap en L te Ls 【 e . o ti ) : n n
L t r it R m o ef d x ) e t Ls. e v n e ;1 : e i ) rt r ( b T S r gf ) eu n s . o ti ) : n )
二 、关 键 技 术
1 面 设 计 .界
也 可 以根 据 自己 的 需要 加 入 其 他 字 符 。Ii et Ls ) nt tri ( 的程 序 代 L e t
码如下:
p iaev i i e t r i ( r t od I t te Ls ) v L n t
{
首 先 在 页 面 D f l ap e ut sx上 添 加 两 个 B tn控 件 、 一 个 a . uo t TxB x控 件 、一 个 I ae 件 、一 个 验 证 控 件 ,它 们 的 名 称 eto mg控 分 别 为 C a gB t n S r、 V l ae V ia l ae r 。 hne ut 、 ue o ai t、 ad t m g 、 f d l e v C a gB t n用 来 生 成 另 一 张 图 片 。 其 中 控 件 V l ao 用 来 输 hn e ut o ai t d r 入 验 证 码 ,r 用 来 实 现 验 证码 的 非 空 验 证 ,I ae用来 显示 验 f v mg
母 等 .
磷 馨 磬
H 举牟 蔚覃
蒜 赫 一 譬 莳 ,
: 礴 生 寺
笺 ‘ 警 自 f 靼 唔薯 ’
图 1 程 序 主 界 面
( )创 建 一 张 图 片 , 以用 于 显 示 验 证 码 字 符 串 。 2
( )在图 片上 显示验 ' 码字符 串。其 中 ,用户每 次刷 新 3 u E 时所创建 的字符串是不相同的。
) )
)
添 加 p vt r gCetV l a Sr g i Ln 创 建 随 机验 i e tn r a s i ra adt tn ( t e ) e i e i nn
证码 字符 串 ,其 中 n e L n为验证码 字符 串的长度 。 函数 p vt i r ae
( ) 画 图 片 的边 框 线 。 6 函数 Ii e eLs(创 建 验 证 码 字 符 串 的 所 有 字 符 ,并 把 nt t ri ) Lt t 这 些 字 符 保 存 在 对 象 L t ri f 其 中 ,函 数 Ii et Ls( et Ls f 。 e tJ n Lt ri ) t e t 添加 的字 符 主 要包 括 数 字 、大 写 字 母 、小 写 字 母 等 3 字 符 , 类
p bi ata ca s V l a e ma e :S s e . e . . a e u l p ril ls a i t l g c d y t m W b UI P g
/ 初始化 /
Ii et rit ) nt te Ls ( : L
{
pi t a o lsr gI g P t I g s V lao . g : r aer d n tn v e y i ma e ah= ma e / ad trj i P
页 面 V l a I ae ap a dt m g .sx调 用 函 数 poet o aeLa i e rt e vi P g_od cd d (bet edrE et rs ) 始 化 ,该 页 面创 建 并 显 示 验 证 码 ojc sne, vnAg 初 e
索引 ,并添加 Lt ri [ dx . otn (到验证码字 符串 中, e eLs i e 】T Sr g ) t tn i 然后删 除刚才被 添加 的字 符。这个 过程一直到产生的验证码字 符 串的长度 为 n e .函数 CetV l a Sr g it L n 的程序 Ln ra a dt tn ( e ) e i e i nn