首页 > 编程知识 正文

java代码生成二维码,二维码攻击 Java

时间:2023-05-06 21:26:58 阅读:45154 作者:128

后台Java生成二维码这里使用了谷歌的zxing软件包。 maven依赖于:

! ---开始依赖二维码---从属关系groupidcom.Google.zxing/groupidartifactidcore/artifactidversion3.4.0/version/dependendersion

二、工具类代码import com.Google.zxing.barcode format; import com.Google.zxing.encodehinttype; import com.Google.zxing.multiformat writer; import com.Google.zxing.writer exception; import com.Google.zxing.com mon.bit matrix; import com.Google.zxing.QR code.decoder.errorcorrectionlevel; import lombok.extern.slf4j.slf4j; importorg.Apache.com mons.lang3. string utils; importorg.spring framework.stereotype.com ponent; import java.awt.*; import Java.awt.image.buffered image; import java.util.Hashtable; /**生成的二维码工具类. * * @ authorlinzp * @ version1.0.0* create date 2021/1/2610336039 */@ slf4j @ componentpubliclasqrcll//二维码绘制高度偏移量,确保书写文字描述二维码信息privatestaticfinalintoffset _ height=25的空间; //标题字体privatestaticfinalstringtitle _ font='黑体'; //标题前缀privatestaticfinalstringtitle _ prefix='编号: '; /** *生成代码. * * @param content内容* @return图像*/publicbufferedimagebuildqrcodeimage (字符串内容) returncreateimage @param content成功扫描的内容* @param title代码标题* @return代码图像*/privatebufferedimagecreateimage (字符串内容,字符串tte ) hints.put (encodehinttype.error _ correction,ErrorCorrectionLevel.H ); hints.put (encodehinttype.character _ set,CHARSET ); hints.put (encodehinttype.margin,1 ); 比特矩阵比特矩阵=null; try { bit matrix=newmultiformatwriter ().encode ) content,BarcodeFormat.QR_CODE,QRCODE_SIZE,QRCODE_SIZE thrownewruntimeexception (“发生了二维码信息异常。 请稍后再试)”} int width=bitMatrix.getWidth (; int height=bitMatrix.getHeight (; bufferedimageimage=newbufferedimage (width,height,BufferedImage.TYPE_INT_RGB ); for(intx=0; x width; x ) for(inty=0; y height; y ) image.setRGB(x,y,bitMatrix.get(x ) x,y )?0xFF000000 :0xFFFFFFFF; } log.info ('二维码生成成功!' ); //有标题且带标题的二维码if (string utils.is not blank (title ) ) returndrawdetailforqr (image,title ); //直接返回生成的二维码返回图像; } /** *绘制代码描述信息. * * @param source源二维码图像* @param title代码标题* @return合成后的图像*/privatebufferedimagedrawdetailforqr (bufferedimagesestimage string title (//新模板图像bufferedimagebuferedimagebuffereredimage=ned QRCODE_SIZE OFFSET_HEIGHT,buffered image graphics 2d graphics=buffered image.create graphics (; //绘制矩形背景的graphics.setcolor(color.white ); graphics.fillrect (0,0,QRCODE_SIZE,OFFSET_HEIGHT ); //绘图描述信息fontfont=newfont(title_font,Font.PLAIN,22 ); graphics.setcolor(color.black ); graphics.set font (字体; graphics.drawstring (title _ prefix title,20,OFFSET_HEIGHT - 2 ); //绘图二维码graphics.drawimage(source,0,OFFSET_HEIGHT,QRCODE_SIZE,QRCODE_SIZE,null ); graphics.dispose (; 返回缓冲图像; }正常生成二维码就可以了,但是需要连接二维码的说明信息,在下载时识别是该机器的二维码。 我在那里做了一点加工。

三.效果图

码字不简单。 如果能帮助你的话,请顺便称赞我~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。