1. 程式人生 > >使用js做帶干擾線的驗證碼

使用js做帶干擾線的驗證碼

程式碼如下

  <body onLoad="drawCoda()">
       <canvas id="mycanvas" onclick="drawCoda()"></canvas>
       <script type="text/javascript">
          
          function lineX(){
             var lineX=Math.floor(Math.random()*80);
             return lineX;
          }
          
          function lineY(){
             var lineY=Math.floor(Math.random()*30);
             return lineY;
          }
          
          
          function drawCoda(){
             var c=document.getElementById('mycanvas');
             c.style.border="1px solid black";
             c.width=80;
             c.height=30;
             r1=Math.floor(Math.random()*255);
             g1=Math.floor(Math.random()*255);
             b1=Math.floor(Math.random()*255);
             var context=c.getContext('2d');
             context.fillStyle="#ccc";
             context.fillRect(0,0,80,30);
             context.fillStyle="red";
             var text="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
             context.font="25px 黑體"; 
             context.rotate(Math.random()*8*Math.PI/180)
             context.fillStyle="rgb("+r1+','+g1+','+b1+")";
             context.fillText(text[Math.floor(Math.random()*text.length)],10,20);
             r2=Math.floor(Math.random()*255);
             g2=Math.floor(Math.random()*255);
             b2=Math.floor(Math.random()*255);
    
             context.font="25px 黑體"; 
             context.rotate(Math.random()*8*Math.PI/180)
             context.fillStyle="rgb("+r2+','+g2+','+b2+")";
             context.fillText(text[Math.floor(Math.random()*text.length)],25,20);
             r3=Math.floor(Math.random()*255);
             g3=Math.floor(Math.random()*255);
             b3=Math.floor(Math.random()*255);
    
             context.font="25px 黑體"; 
             context.rotate(Math.random()*-8*Math.PI/180)
             context.fillStyle="rgb("+r3+','+g3+','+b3+")";
             context.fillText(text[Math.floor(Math.random()*text.length)],40,20);
             r4=Math.floor(Math.random()*255);
             g4=Math.floor(Math.random()*255);
             b4=Math.floor(Math.random()*255);
             context.font="25px 黑體"; 
    
             context.rotate(Math.random()*-8*Math.PI/180)
             context.fillStyle="rgb("+r4+','+g4+','+b4+")";
             context.fillText(text[Math.floor(Math.random()*text.length)],55,20);  
    
             for(var i=1;i<=20;i++){
                r=Math.floor(Math.random()*255);
                g=Math.floor(Math.random()*255);
                b=Math.floor(Math.random()*255);
                context.beginPath(); 
                context.strokeStyle="rgb("+r+','+g+','+b+")";
                context.moveTo(lineX(),lineY());
                context.lineTo(lineX(),lineY());
                context.lineWidth=0.5;
                context.closePath();
                context.stroke();
             }
          }  
       </script>
    </body>