In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-31 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >
Share
Shulou(Shulou.com)06/01 Report--
This article mainly introduces "Java how to save login CAPTCHA to redis". In daily operation, I believe that many people have doubts about how to save login CAPTCHA to redis in Java. Xiaobian consulted all kinds of materials and sorted out simple and easy-to-use methods of operation. I hope it will be helpful to answer the question of "how to save login CAPTCHA to redis". Next, please follow the editor to study!
Introduce redis dependency
Org.springframework.boot
Spring-boot-starter-data-redis
CAPTCHA generation class
Package com.yishang.yspay.util
Import org.springframework.beans.factory.annotation.Autowired
Import org.springframework.data.redis.core.RedisTemplate
Import java.awt.*
Import java.util.Random
/ * *
* CAPTCHA generation class
, /
Public class RandomValidateCode {
Public static final String RANDOMCODEKEY = "RANDOMVALIDATECODEKEY"; / / key in session
/ / private String randString = "0123456789"; / / randomly generate the string private String with only numbers
/ / private String randString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; / / randomly generate a string with only letters
Private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; / / randomly generates a string of numbers and letters
Private int width = 95 position / picture width
Private int height = 25umbnail / picture high
Private int lineSize = 10 / number of interference lines
Private int stringNum = 4 characters / number of characters randomly generated
/ * *
* redis tool
, /
@ Autowired
Private RedisTemplate redisTemplate
Private Random random = new Random ()
/ *
* get the font
, /
Private Font getFont () {
Return new Font ("Fixedsys", Font.CENTER_BASELINE, 24)
}
/ *
* get the color
, /
Public Color getRandColor (int fc, int bc) {
If (fc > 255)
Fc = 255,
If (bc > 255)
Bc = 255,
Int r = fc + random.nextInt (bc-fc-16)
Int g = fc + random.nextInt (bc-fc-14)
Int b = fc + random.nextInt (bc-fc-18)
Return new Color (r, g, b)
}
/ *
* draw string
, /
Public String drowString (Graphics g, String randomString, int I) {
G.setFont (getFont ())
G.setColor (new Color (random.nextInt, random.nextInt), random
.nextInt (121)
String rand = String.valueOf (getRandomString (random.nextInt (randString)
.length ()
RandomString + = rand
G.translate (random.nextInt (3), random.nextInt (3))
G.drawString (rand, 13 * I, 16)
Return randomString
}
/ *
* draw interference lines
, /
Public void drowLine (Graphics g) {
Int x = random.nextInt (width)
Int y = random.nextInt (height)
Int xl = random.nextInt (13)
Int yl = random.nextInt (15)
G.drawLine (x, y, x + xl, y + yl)
}
/ *
* get random characters
, /
Public String getRandomString (int num) {
Return String.valueOf (randString.charAt (num))
}
}
Interface
@ RequestMapping (value = "/ getVerify")
Public void getVerify (HttpServletRequest request, HttpServletResponse response) {
Response.setContentType ("image/jpeg"); / / set the corresponding type and tell the browser that the output is an image.
Response.setHeader ("Pragma", "No-cache"); / / set the response header information, telling the browser not to cache this content
Response.setHeader ("Cache-Control", "no-cache")
Response.setDateHeader ("Expire", 0)
RandomValidateCode randomValidateCode = new RandomValidateCode ()
/ / the BufferedImage class is an Image class with a buffer, and the Image class is a class used to describe image information.
BufferedImage image = new BufferedImage (95,25, BufferedImage.TYPE_INT_BGR)
Graphics g = image.getGraphics (); / / generate the Graphics object of the Image object, which can perform various drawing operations on the image
G.fillRect (0,0,95,25)
G.setFont (new Font ("Times New Roman", Font.ROMAN_BASELINE, 18))
G.setColor (randomValidateCode.getRandColor 110,133)
/ / draw interference lines
For (int I = 0; I
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.