内容导航:int y = (height),int g=fc+(bc-fc),i++){ int x = (width),getRandColor(int fc
  • java实现验证码的自动识别
  • 用java写的验证码识别技术原理
  • 用java程来自序如何解析验证码图片
  • Java如何加密和数字签名
  • {image}

    一、java实现验证码的自动识别

    方式比较多,用一个二维数组存放 ,如a[5][5]={{,,,,},{"1212","1233","2323","",""}},可以动态的生成一个小于5的数字,直接把生成的数字和下标对应 ,在和后面的的字符串比较就可以自动验证了

    二 、用java写的验证码识别技术原理

    需要技术原理+要点+源码 如果能给出原理和要点可以采纳 ,能给出源码的更好且如果满意了另外加200分。 希望各位大侠帮忙!!!!

    <%@ page contentType="image/jpeg" import=".,.,.,." %><%!Color getRandColor(int fc,int bc){//给定范围获得随机颜色 Random random = new Random(); if(fc>255) fc=255; if(bc>255) bc=255; int r=fc+(bc-fc); int g=fc+(bc-fc); int b=fc+(bc-fc); return new Color(r,g,b); }%><%//设置页面不缓存("Pragma","No- cache");("Cache-Control","no-cache");ader("Expires", 0);

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

    // 获取图形上下文Graphics g = cs();

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

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

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

    //画边框//(new Color());//(0,0,width-1,height-1);

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

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

    // 将认证码存入ute("rand",sRand);

    // 图象生效();

    // 输出图象到页面(image, "JPEG", Stream());();out = ();%>

    三、用java程来自序如何解析验证码图片

    验证码解析???验证码一般是在阶群车握由导今后台生成,然后保存 单岩溶 在session里,再返回前台上显示,验证时输入数字后调用session的属性就可以判断了

    四、Java如何加密和数字签名

    数字签名:数字签名,它是确定交换消息的通信方身份的第一个级别 。上面A通过使用公钥加密数据后发给B,B利用私钥解密就得到了需要的数据 ,问题来了,由于都是使用公钥加密,那么如何检验是A发过来的消息呢?上面也提到了一点 ,私钥是唯一的,那么A就可以利用A自己的私钥进行加密,然后B再利用A的公钥来解密 ,就可以了;数字签名的原理就基于此,而通常为了证明发送数据的真实性,通过利用消息摘要获得简短的消息内容 ,然后再利用私钥进行加密散列数据和消息一起发送。java中为数字签名提供了良好的支持 ,java。security 。Signature类提供了消息签名:Java代码/DigitalSignature2Example 。javaCopyright2005-2-16*/importjava。security。Signature;importjava 。security。KeyPairGenerator;importjava。security 。KeyPair;importjava。security。SignatureException;/数字签名,使用RSA私钥对对消息摘要签名,然后使用公鈅验证测试/publicclassDigitalSignature2Example{publicstaticvoidmain(String[]args)throwsException{if(args 。length!=1){System。err。println("Usage:javaDigitalSignature2Example");System 。exit(1);}byte[]plainText=args[0]。getBytes("UTF8");//形成RSA公钥对System。out 。println("StartgeneratingRSAkey");KeyPairGeneratorkeyGen=KeyPairGenerator 。getInstance("RSA");keyGen。initialize(1024);KeyPairkey=keyGen。generateKeyPair();System 。out。println("FinishgeneratingRSAkey");//使用私鈅签名来源:考试大的美女编辑们Signaturesig=Signature。getInstance("SHA1WithRSA");sig 。initSign(key。getPrivate());sig。update(plainText);byte[]signature=sig 。sign();System。out。println(sig 。getProvider()。getInfo());System。out 。println("Signature:");System 。out。println(newString(signature,"UTF8"));//使用公鈅验证System。out 。println("Startsignatureverification");sig。initVerify(key。getPublic());sig 。update(plainText);try{if(sig。verify(signature)){System。out 。println("Signatureverified");}elseSystem。out。println("Signaturefailed");}catch(SignatureExceptione){System 。out。println("Signaturefailed");}}}。

    本文版权归趣快排www.sEoguruBlog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ✈61910465