100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 后端生成图片验证码 Kotlin生成图片验证码 Java生成图片验证码 图片验证码的生成和校验

后端生成图片验证码 Kotlin生成图片验证码 Java生成图片验证码 图片验证码的生成和校验

时间:2021-08-01 03:25:37

相关推荐

后端生成图片验证码 Kotlin生成图片验证码 Java生成图片验证码 图片验证码的生成和校验

后端生成图片验证码

注:以下代码主要使用kotlin进行编写,kotlin可兼容java,可以直接使用。IDEA也支持将java与kotlin代码进行互相转换。

1、引入依赖:

Gradle(若你使用的是gradle依赖管理,使用这个):

implementation("com.github.penggle:kaptcha:2.3.2")

Maven(若你使用的maven依赖管理,使用这个):

<dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency>

若未用依赖管理工具,则可将maven仓库对应的依赖jar包拉下导入lib。

2、配置类(和配置文件2选1即可)

@Configurationclass KaptchaConfig {@Beanfun producer(): Producer {val properties = Properties()//图片边框properties["kaptcha.border"] = "no"//图片中有几位字符properties["kaptcha.textproducer.char.length"] = "4"// 图片长宽properties["kaptcha.image.height"] = "50"properties["kaptcha.image.width"] = "100"//图片显示样式properties["kaptcha.obscurificator.impl"] = "com.google.code.kaptcha.impl.WaterRipple"//字体颜色properties["kaptcha.textproducer.font.color"] = "blue"//字体大小properties["kaptcha.textproducer.font.size"] = "40"//干扰 可选参数com.google.code.kaptcha.impl.NoNoise、com.google.code.kaptcha.impl.DefaultNoise;properties["kaptcha.noise.impl"] = "com.google.code.kaptcha.impl.DefaultNoise"properties["kaptcha.noise.color"] = "255,96,0"//排除b、g、i、l、o、q、s、z,1、0、9等比较难判断的字母和数字properties["kaptcha.textproducer.char.string"] = "acdefhkmnprtwxy2345678"val config = Config(properties)return config.producerImpl}}

3、配置文件(和配置类2选一即可)

kaptcha:# 边框border: "no"textproducer:char:# 图片中有几位字符length: 4# 有哪些字符string: acdefhkmnprtwxy2345678font:# 字体颜色color: blue# 字体大小size: 40noise:# 干扰项 com.google.code.kaptcha.impl.NoNoise、com.google.code.kaptcha.impl.DefaultNoiseimpl: com.google.code.kaptcha.impl.DefaultNoisecolor: 255,96,0image:# 高height: 50# 宽width: 100obscurificator:# 图片显示样式impl: com.google.code.kaptcha.impl.WaterRipple

4、使用(以下是kotlin的写法,java换成对应的类注入即可)

@Autowiredprivate lateinit var producer: Producerfun getPicVeriCode(): String {// 随机获取内容val verificationCode = producer.createText()val verificationPic = generatePicVerification(verificationCode)// 之后可以将验证码放入redis,设置过期时间为 60s,之后进行验证码校验return verificationPic}// 这里生成的base64放入img标签可直接展示。fun generatePicVerification(verificationCode: String): String {// 生成对应的图片val bi = producer.createImage(verificationCode)val outputStream = ByteArrayOutputStream()ImageIO.write(bi, "jpeg", outputStream)val base64Image = "data:image/jpeg;base64," + Base64.encodeBase64String(outputStream.toByteArray())return "<img src='$base64Image'/>"}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。