当前位置:首页 » 著名认证 » 图片认证码

图片认证码

发布时间: 2020-11-29 00:01:18

A. 认证信息里的附加码,图片认证和数字认证有什么区别

都一样 是为了防止恶意软件注册的 有的人眼都很难分辨出来 软件就无法识别了

B. 如何获取验证码图片

不知道LZ你是使用Java的编程语言还是其他的,我这里讲讲Java的实现方式。。。 B/S方式的验证码图片生成可以使用Servlet的方式。。。 package cn.com.CCB.moles.security; import javax.servlet.http.*; import java.io.*; import java.util.*; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; @SuppressWarnings("serial") public class Image extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { String randStr = "1,2,3,A,B,4,5,6,X,Y,Z,7,8,P,Q,R,9,C,D,E,F,G,H,I,J,K,L,M,N,S,T,U,W"; String[] randList = randStr.split(","); response.setContentType("image/jpeg"); // 必须设置ContentType为image/jpeg // 设置页面不缓存 response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); // 在内存中创建图象 int width = 80, height = 20; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // 获取图形上下文 Graphics g = image.getGraphics(); // 生成随机类 Random random = new Random(); // 设定背景色 g.setColor(getRandColor(200, 250)); // g.setColor(new Color(204, 204, 204)); g.fillRect(0, 0, width, height); // 设定字体 g.setFont(new Font("Times New Roman", Font.BOLD, 16)); // 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到 g.setColor(getRandColor(160, 200)); for (int i = 0; i < 155; i++) { int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x + xl, y + yl); } // 取随机产生的认证码(4位数字字符的混合字符串) String sRand = ""; for (int i = 0; i < 4; i++) { String rand = randList[Math.round((randList.length - 1) * random.nextFloat())]; sRand += rand; // 将认证码显示到图象中 // g.setColor(new Color(20 + random.nextInt(110), 20 + // random.nextInt(110), 20 + random.nextInt(110))); // //调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成 g.setColor(new Color(0, 0, 0)); g.drawString(rand, 18 * i + 8, 16); } HttpSession session = request.getSession(); session.setAttribute("checkCode", sRand); try { ImageIO.write(image, "JPEG", response.getOutputStream()); } catch (Exception ex) { ex.printStackTrace(); } } private Color getRandColor(int fc, int bc) { // 给定范围获得随机颜色 Random random = new Random(); if (fc > 255) { fc = 255; } if (bc > 255) { bc = 255; } int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); } } 这样你就可以在页面上显示图片的地方写上连接地址,也就是Servlet的访问地址,同时别忘记了web.xml文件中对这个Servlet配置。。。

C. 图片保护首发认证码是什么

给宝贝的主图加上图盾,当其他卖家盗用你的加过图盾的图片时,淘宝会提示他整改,否则会删除他的宝贝链接

D. JAVA识别图片验证码

package com.he;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;

public class CodeFact
extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//设置页面不缓存
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);

// 在内存中创建图象
int width = 60, height = 20;
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);

// 获取图形上下文
Graphics g = image.getGraphics();

//生成随机类
Random random = new Random();

// 设定背景色
g.setColor(getRandColor(200, 250));
g.fillRect(0, 0, width, height);

//设定字体
g.setFont(new Font("Times New Roman", Font.PLAIN, 18));

//画边框
g.setColor(new Color(33,66,99));
g.drawRect(0,0,width-1,height-1);

// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160, 200));
for (int i = 0; i < 155; i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x, y, x + xl, y + yl);
}

// 取随机产生的认证码(4位数字)
String sRand = "";
for (int i = 0; i < 4; i++) {
String rand = String.valueOf(random.nextInt(10));
sRand += rand;
// 将认证码显示到图象中
g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110),
20 + random.nextInt(110))); //调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand, 13 * i + 6, 16);
}

// 将认证码存入SESSION
HttpSession session = request.getSession();
session.setAttribute("rand", sRand);

// 图象生效
g.dispose();

// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}

//给定范围获得随机颜色
private Color getRandColor(int fc, int bc) {
Random random = new Random();
if (fc > 255) {
fc = 255;
}
if (bc > 255) {
bc = 255;
}
int r = fc + random.nextInt(bc - fc);
int g = fc + random.nextInt(bc - fc);
int b = fc + random.nextInt(bc - fc);
return new Color(r, g, b);
}

}

你试试!!

E. jsp图片验证码

jsp生成图片验证码的完整例子如下:

<%@ page contentType="image/jpeg" import="java.awt.*,
java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc)
{
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%>
<%
out.clear();//这句针对resin服务器,如果是tomacat可以不要这句
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
Random random = new Random();
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(rand,13*i+6,16);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
%>

F. 什么是图片验证码

验证码的功能一般是防止使用程序恶意注册、暴力破解或批量发帖而设置的。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。学习验证码的破解/识别技术,不仅可以知道验证码的原理,而且可以让你知道怎样才能防止验证码被破解。
最常见的验证码主要有以下几种:
1、四位数字,随机的一数字字符串,最原始的验证码,验证作用几乎为零。
2、随机数字图片验证码。图片上的字符比较中规中矩,有的可能加入一些随机干扰素,还有一些是随机字符颜色,验证作用比上一个好。没有基本图形图像学知识的人,不可破!
3、各种图片格式的随机数字+随机大写英文字母+随机干扰像素+随机位置。
4、汉字是注册目前最新的验证码,随机生成,打起来更难了,影响用户体验,所以,一般应用的比较少。

G. 验证码图片制作

随机图片验证码的制作
以前写的一个生成彩色验证码的例子。重载了makeCode()函数,即可以生成本地图片,又可生成基于输出流的图片。
package smart.gui.util;
。。。
public class ColoredCodeMaker {
private final static String letterCollection =
"";
private String randomStr = "";
private RenderedImage renderedImg = null;
public ColoredCodeMaker(int width, int height, int letterCount) {
init(letterCount);
makeRenderedImage(width, height);
}
public String makeCode(OutputStream os) {
String formatName = "JPEG";
try {
ImageIO.write(this.renderedImg, formatName, os);
}
catch (Exception ex) {
return "";
}
return randomStr;
}
public String makeCode(File outputFileName) {
String formatName = "JPEG";
try {
ImageIO.write(this.renderedImg, formatName, outputFileName);
}
catch (Exception ex) {
return "";
}
return randomStr;
}
private void makeRenderedImage(int width, int height) {
if (width <= 0) {
width = 60;
}
if (height <= 20) {
height = 20;
}
/**
* TYPE_INT_RGB Represents an image with 8-bit RGB color components packed into integer pixels.
* The image has a DirectColorModel without alpha.
*/
BufferedImage bufImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
/**
* 获取图形上下文
*/
Graphics g = bufImage.createGraphics();
/**
* 设置背景色
*/
g.setColor(new Color(0xDCDCDC));
g.fillRect(0, 0, width, height);
/**
* 画边框
*/
g.setColor(Color.black);
g.drawRect(0,0,width-1,height-1);
/**
* 将认证码显示到图像中
*/
g.setColor(Color.black);
g.setFont(new Font("Atlantic Inline",Font.PLAIN,18));
for (int i = 0; i < randomStr.length(); i++) {
g.drawString(randomStr.charAt(i)+"", width/(randomStr.length()+2)*(i+1), height/2 + 10);
}
Random random = new Random();
for (int i = 0; i < width/2; i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
g.drawOval(x,y,1,1);
}

g.dispose();
this.renderedImg = bufImage;
}
private void init(int letterCount) {
if (randomStr.length() != letterCount) {
randomStr = "";
for (int i = 0; i < letterCount; i++) {
randomStr +=
letterCollection.charAt( (int) (letterCollection.length() *
Math.random()));
}
}
}
}
////////测试代码,图片宽150,高40,图片上共8个随机字符,保存在C盘下
ColoredCodeMaker ccm = new ColoredCodeMaker(150,40,8);
ccm.makeCode(new java.io.File("C:\\aaa.jpeg"));
----------------------------------------------------------------------------------------------------------------------------------------------用VB制作验证码生成器
算法设计

1.窗体设计

启动VB6并新建一个标准EXE工程,布置好控件并设置好名称。

接着将两个图片框的AutoRedraw属性设置成True,txt_inp、cmd_browse的Enabled属性设置为False,txt_inp的Maxlength属性设置成10。然后单击“工程→部件”,勾选“Microsoft CommonDialog Control 6.0”。

2.算法

加密过程是程序的重点。在这里我们运用画线和画点函数来处理图片,在图片框上随机选两个点画直线,同时用随机函数确定它的颜色;再随机点一个点,同样用随机函数确定它的颜色。在这里我们还用随机取字体样式和背景色,不过要注意的是,背景和字体颜色的差别要搞大一些,由于每个RBG分量值越大颜色越深,因此我们用下面两条语句就可以增强颜色的对比度:

pic_las.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
pic_las.BackColor = RGB(Rnd * 55, Rnd * 55, Rnd * 55)
绘制图像的具体的代码如下:
Sub AddPas()
On Error GoTo Err1
pic_las.Print Space(10 - Len(Result)); Result
Dim x, y, x1, x2, i As Integer
'随机决定输出字体样式
pic_las.FontItalic = Int(Rnd * 2)
pic_las.FontUnderline = Int(Rnd * 2)
pic_las.ForeColor = RGB(Rnd * 155 + 100, Rnd * 155 + 100, Rnd * 155 + 100)
'为验证码添加随机直线
For i = 1 To (Int(Rnd(1) * 8) + 1)
x = Int(Rnd * pic_las.Width): y = Int(Rnd * pic_las.Height)
x1 = Int(Rnd * pic_las.Width): Y1 = Int(Rnd * pic_las.Height)
pic_las.Line (x, y)-(x1, Y1), RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next i
'为验证码随机添加圆点
For i = 1 To (Int(Rnd(1) * 200) + 100)
pic_las.PSet (pic_las.Width * Rnd, pic_las.Height * Rnd), _
RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next i
'写入输出文件
If chk_file.Value = 1 Then
SavePicture pic_las.Image, txt_outfile.Text
MsgBox "验证码已经保存在:" & txt_outfile.Text, VBInformation
End If
Exit Sub
Err1: '产生了错误
MsgBox Err.Number & ":" & Err.Description, VBExclamation
End Sub

内容处理好了,接下来就只要简单响应用户的操作即可。在这里我们还需要解决随机生成验证码的问题,我们可以把需要生成的验证码每一位都放入一个字符串,再用随机函数以及字符串截取函数Mid(String,Start As Long,[Length])读入每一位验证码。另外为了增强程序的功能,我还允许用户保存和拷贝验证码以及允许用户自行定义验证码。由于版面有限,这里就不给出完整的源程序了,你可以从http://www.cfan.com.cn/11program/200513/VBpass.zip下载到完整的源代码。

总结

运行一下程序,“加密”效果还不错吧。

这可不是一般的破解机器能识别得了的哦!当然你也可以将这个加密算法运用到你个人的程序和论坛上去,它为程序的安全性提供了很好的保证呢!

H. 微信公众账号商户认证里的填写图片验证码在哪里获取

网速问题没有刷新出来吧

I. 手机如何输入图片验证码

请问你是哪个软件遇到的哪种图形验证码不会输入呢?
我目前遇到的验证码有如下几种:
1,大小写字母和数字组合,在旁边的文本框中输入答案即可;

2,汉字,在旁边的文本框中输入答案即可;

3,数学题,如:1+贰=?在旁边的文本框中输入答案 3 即可;
4,选择题,如:葡萄藤结是苹果还是葡萄(2个字)?在旁边的文本框中输入答案 葡萄 即可;
5,多选题,如:12306订票网站的,这种是将每一个答案点一下即可;
6,给出几个字和一句话,需要用鼠标拖动的方式使其跟几个字重叠度达到一定比例时通过(这种目前不多见,忘记在哪用过了,找着了再补充);
7,语音验证码,将听到的验证码输入即可(这种目前也不多见,忘记在哪用过了,找着了再补充)。
(9)图片认证码扩展阅读:
1.验证码一般是防止批量注册的,人眼看起来都费劲,何况是机器。
2.一般注册用户ID的地方以及各大论坛都要输入验证码。
3.常见的验证码:
1)四位数字和字母,可能都是字母,也可能都是数字,随机的4位字符串,最原始的验证码,验证作用几乎为零。CSDN网站用户登录用的是GIF格式,常用的随机数字图片验证码。图片上的字符比较中规中矩,验证作用比上一个好。
(2)汉字是注册目前最新的验证码,随机生成,打起来比较难,例如QQ申诉页面。
(3)MS的hotmail申请时候的是BMP格式, 随机数字+随机大写英文字母+随机干扰像素+随机位置。
(4)韩文或日文,现在跑跑HF上MS注册要打韩文,增加了难度。
(5)Google的Gmail注册时候的是JPG格式,随机英文字母+随机颜色+随机位置+随机长度。
(6)其他各大论坛的是XBM格式,内容随机。
(7)广告验证码:输入广告中的部分内容即可,特点是可以给网站带来额外收入,也可以使使用者耳目一新。
(8)问题验证码:问题验证码主要是以问答式的形式来进行填写。它的查看比加模验证码更容易辨别和录入,系统可以生成诸如“1+2=?”的问题让用户进行回答,当然这样的问题是随机生成的。另一种问题验证码,则是文字式的问题验证码,诸如生成问题“中国的全称是什么?”,当然有些网站还在问题后面给出了提示答案或直接答案。

J. 应如何获取图片验证码的地址

JAVA<%@ page contentType="image/jpeg" import="java.awt.*, java.awt.image.*,java.util.*,javax.imageio.*" %> <% // 在内存中创建图象 int width=60, height=20; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // 获取图形上下文 Graphics g = image.getGraphics(); // 设定背景色 g.setColor(new Color(0xDCDCDC)); g.fillRect(0, 0, width, height); //画边框 g.setColor(Color.black); g.drawRect(0,0,width-1,height-1); // 取随机产生的认证码(4位数字) String rand = request.getParameter("rand"); rand = rand.substring(0,rand.indexOf(".")); switch(rand.length()) { case 1: rand = "000"+rand; break; case 2: rand = "00"+rand; break; case 3: rand = "0"+rand; break; default: rand = rand.substring(0,4); break; } // 将认证码存入SESSION session.setAttribute("rand",rand); // 将认证码显示到图象中 g.setColor(Color.black); Integer tempNumber = new Integer(rand); String numberStr = tempNumber.toString(); g.setFont(new Font("Atlantic Inline",Font.PLAIN,18)); String Str = numberStr.substring(0,1); g.drawString(Str,8,17); Str = numberStr.substring(1,2); g.drawString(Str,20,15); Str = numberStr.substring(2,3); g.drawString(Str,35,18); Str = numberStr.substring(3,4); g.drawString(Str,45,15); // 随机产生88个干扰点,使图象中的认证码不易被其它程序探测到 Random random = new Random(); for (int i=0;i<20;i++) { int x = random.nextInt(width); int y = random.nextInt(height); g.drawOval(x,y,0,0); } // 图象生效 g.dispose(); // 输出图象到页面 ImageIO.write(image, "JPEG", response.getOutputStream()); %>

热点内容
美发店认证 发布:2021-03-16 21:43:38 浏览:443
物业纠纷原因 发布:2021-03-16 21:42:46 浏览:474
全国著名不孕不育医院 发布:2021-03-16 21:42:24 浏览:679
知名明星确诊 发布:2021-03-16 21:42:04 浏览:14
ipad大专有用吗 发布:2021-03-16 21:40:58 浏览:670
公务员协议班值得吗 发布:2021-03-16 21:40:00 浏览:21
知名书店品牌 发布:2021-03-16 21:39:09 浏览:949
q雷授权码在哪里买 发布:2021-03-16 21:38:44 浏览:852
图书天猫转让 发布:2021-03-16 21:38:26 浏览:707
宝宝水杯品牌 发布:2021-03-16 21:35:56 浏览:837