Java: Additional Code Builder (Picture)

xiaoxiao2021-03-06  14

[Picture.java]

Package creator.common.attachlogin;

Import java.io. *;

Public class picture {

Final Int key = 1;

Final string error_format_int = "format of color is not rgb.sample /" 212 | 232 | 0 / ""

Final string error_color_input = "format of color (num): Num in 0-255

/ ** Format Output Data ** /

Public string management (String Temp) {

String Returnstr = ""

Temp = Encrypt (TEMP);

Byte [] by = TEMP.GETBYTES ();

For (int i = 0; i

Returnstr = Returnstr (Byte) by [i] "|";

}

Return Returnstr;

}

/ ** Format Input Data ** /

Public Byte [] Dismanage (String Temp) {

INT LEN = 0, INDEX = 0, i = 0, first = 0;

While ((i = temp.indexof ("|", first))> - 1) {

Len ;

FigSt = i 1;

}

Byte [] by = new byte [len];

FigSt = 0;

While ((i = temp.indexof ("|", first))> - 1) {

By [index] = byte.Parsebyte (Temp.Substring (First, i));

INDEX ;

FigSt = i 1;

}

Return by;

}

/ ** randomly generate four additional code ** /

Public String getrandom () {

INT I1 = (int) (java.lang.math.random () * 10);

INT I2 = (int) (java.lang.math.random () * 10);

INT i3 = (int) (java.lang.math.random () * 10);

INT i4 = (int) (java.lang.math.random () * 10);

Return String.Valueof (i1) String.Valueof (i2) String.Valueof (i3) String.Valueof (i4);

}

/ ** Encryption 1: misalignment processing ** /

Public String Encrypt (String Randomstr) {

String para = random () randomstr.substring (0, 1) random () random () randomstr.substring (1, 2);

Para = Para Random () randomstr.substring (2);

Return Jiami (Para);

}

/ ** Get a random number 0-9 ** /

Private string random () {

String Temp = String.Valueof ((int) (java.lang.math.random () * 10));

Return Temp;

}

/ ** Encryption 2: Encryption processing, this method can modify ** / private string jiami (String Str) {

Byte [] by = str.getbytes ();

BYTEARRAYINPUTSTREAM IN = New ByteArrayInputStream (by);

int CH;

INT INDEX = 0;

Byte [] temp = new byte [in.available ()];

While (chile (ch = in.read ())! = - 1) {

Temp [index] = (BYTE) (ch-key);

INDEX ;

}

BYTEARRAYINPUTSTREAM INS = New ByteArrayInputStream (TEMP);

BufferedReader Freader = New BufferedReader (inPutStreamReader);

Try {returnFReader.readLine ();} catch (exception e) {return ";

}

/ ** Get the correct number from the number ** /

Public String Discrypt (String Temp) {

String Para = Jiemi (Dismanage (TEMP));

Return Para.Substring (1, 2) Para.Substring (4, 5) Para.Substring (6, 8);

}

/ ** Decryption handling ** /

Private string jiemi (byte [] by) {

BYTEARRAYINPUTSTREAM IN = New ByteArrayInputStream (by);

int CH;

INT INDEX = 0;

Byte [] temp = new byte [in.available ()];

While (chile (ch = in.read ())! = - 1) {

Temp [Index] = (Byte) (CH Key);

INDEX ;

}

BYTEARRAYINPUTSTREAM INS = New ByteArrayInputStream (TEMP);

BufferedReader Freader = New BufferedReader (inPutStreamReader (INS);

Try {returnFReader.readLine ();} catch (exception e) {return ";

}

/ ** Decompose color Num | NUM | NUM ** /

Public int [] masterdata (string temp) {

INDEX_LEN = 0, INDEX = 0, Next_index = 0;

int [] return_arr = new int rt [3];

Boolean Break_ERROR = false;

IF (GetMax (Temp, "|") == 2) {

While ((Index_len = Temp.indexof ("|", next_index)> - 1) {

IF (getInt (Temp.substring (next_index, index_len) == 256) {

Break_ERROR = true;

} else {

Return_arr [index] = getInt (Temp.substring (next_index, index_len);

Next_index = INDEX_LEN 1;

INDEX ;

}

IF (BREAK_ERROR) BREAK;}

IF (BREAK_ERROR) {

Return NULL;

} else {

Return_arr [index] = getInt (Temp.substring (next_index));

RETURN RETURN_ARR;

}

} else {

System.out.println (ERROR_FORMAT_INT ":" TEMP);

Return NULL;

}

}

Private int getmax (string temp, string temp2) {

INDEX = 0, INDEX_LEN = 0, INDEX_NEXT = 0;

While ((Index = Temp.indexof (Temp2, Index_Next)> - 1) {

INDEX_LEN ;

INDEX_NEXT = INDEX 1;

}

Return Index_Len;

}

Private int getint (String Temp) {

Try {

Return Integer.Parseint (TEMP);

} catch (exception e) {

System.out.println (ERROR_COLOR_INPUT ":" TEMP);

Return 256;

}

}

}

[CreateImage.java]

Package creator.common.attachlogin;

Import java.io. *;

Import javax.servlet. *;

Import javax.servlet.http. *;

Import java.awt. *;

Import java.awt.image. *;

Import java.awt.image.bufferedImage;

Import com.sun.Image.codec.jpeg. *;

Import com.sun.jpegcodec;

Public class createImage extends httpservlet {

Static Final Private string content_type = "text / html; charSet = GB2312";

Final String Input_back_color_error = "Input RGB Backcolor IS Error";

Final string infut_fore_color_error = "Input RGB Forecolor is Error";

Private PICTURE PIC = New Picture ();

// Initialize Global Variables

Public void init () throws servletexception {

}

// Process the http get request

Public void doget (httpservletRequest request, httpservletResponse response) throws servletexception, ioException {// generated picture try {int imagewidth = 60; int imageheight = 20;

BufferedImage image = new BufferedImage (imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB); Graphics graphics = image.getGraphics (); graphics.setColor (Color.white); graphics.fillRect (0,0, imageWidth, imageHeight); graphics.setColor ( Color.white); FileOutputStream fos = new FileOutputStream ( "attach.jpg"); BufferedOutputStream bos = new BufferedOutputStream (fos); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder (bos); encoder.encode (image); bos.close ();

} catCH (Exception E) {system.out.println ("Generate Picture Error!");

String querynum = Request.getParameter ("image");

String queryRGB = "";

IF (Request.GetParameter ("RGB")! = null) {

QueryRGB = Request.getParameter ("RGB");

}

Response.setHeader ("Cache-Control", "No-Store");

Response.setContentType ("Image / JPEG");

ServletOutputStream out = response.getOutputStream ();

// jpg format background color picture (same as the page style), width 3.6 mm, high 1.8 mm

InputStream Imagein = New FileInputStream (New File ("attach.jpg"));

JPEGIMAGEDECODER DECODER = JPEGCODEC.CREATEJPEGDECODER (Imagein);

Bufferedimage image4 = decoder.decodeasbufferedImage ();

Querynum = pic.discrypt (querynum);

Graphics g = image4.getgraphics ();

Queryrgb.Length ()> 1) {

IF (pic.masterdata (queryrgb)! = null) {

Int [] arg = pic.masterdata (queryRGB);

G.SetColor (New Color (Arg [0], Arg [1], Arg [2]));

}

} else {

G.SetColor (New Color (255, 0, 0));

}

g.drawstring (querynum, 0, 13);

JPEGIMAGEENCODER ENCODER = JPEGCODEC.CREATEJPEGENCODER (OUT);

Encoder.Encode (image4);

Out.close ();

}

}

[Web.xml]

CreateImage javabean.com.createImage createImage / servlet / createImage [index.jsp]

<% @ Page ContentType = "Text / HTML; Charset = GB2312"%> <% @ page import = "javabean.com.picture"%> <% PICTURE PIC = New Picture (); string random = pic.getrandom () String Encryrandom = Pic.Manage (Random);%> Login window </ title> </ head> <body> <div align = "center"> <p align = "center" > Additional code: <input type = "attach" size = "4"> <img align = absbottom vSpace = 2 border = 0 src = "servlet / createImage? Image = <% = encryrandom%> & rgb = 255 | 0 | 0 "title =" verification code "> </ p> <input type =" hidden "name =" get_attach "value =" <% = random%> "> </ div> </ body> </ html></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-51035.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="51035" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.037</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'w8FSsU_2FGq7haUyxKQlS_2FB18JD5_2BIrcTMQCVChKixd4gVTcW1cTjBPGiJzqsaagZ4iLEK40c46fGWqtTz_2B5OzLw_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>