当前位置: 首页 > news >正文

原材料价格查询网站500强企业排名一览表

原材料价格查询网站,500强企业排名一览表,如何查看网站开发单位,成都小程序制作开发随着互联网的不断发展#xff0c;安全性问题日益突出。为了保障用户账号的安全性#xff0c;很多网站都引入了验证码机制。验证码是一种区分用户是计算机还是人的公共全自动程序#xff0c;可以有效防止恶意攻击和自动化脚本的滥用。本文将介绍如何使用Python生成随机图片验…随着互联网的不断发展安全性问题日益突出。为了保障用户账号的安全性很多网站都引入了验证码机制。验证码是一种区分用户是计算机还是人的公共全自动程序可以有效防止恶意攻击和自动化脚本的滥用。本文将介绍如何使用Python生成随机图片验证码提高网站的安全性。 效果图 一、准备工作 在生成随机图片验证码之前我们需要准备一些必要的库和工具。首先我们需要安装Python环境然后使用pip安装以下库 PILPython Imaging Library用于图像处理和操作。random用于生成随机数。下载字体文件字体文件 可以通过以下命令安装这些库 pip install pillow二 功能介绍 1. 生成随机验证码 import random import string # 生成指定长度的随机验证码 all_chars string.ascii_letters string.digits # 包含大小写字母和数字 random_code .join(random.choice(all_chars) for _ in range(4)) print(random_code)通过string生成随机大小字母数组长度为4的字符串 2. 创建图片 from PIL import Image img Image.new(modeRGB, size(120, 30), color(255, 255, 255))with open(code.png,wb) as f:img.save(f,formatpng)通过pillow模块可以创建图片 如图可以指定图片的大小和颜色。 3. 创建画笔 from PIL import Image, ImageDraw# 创建一个新的白色图像大小为200x200像素 image Image.new(RGB, (200, 200), color(255, 255, 255))# 创建一个可以在给定图像上绘图的对象 draw ImageDraw.Draw(image)# 画线 # 参数分别为起始点的x坐标起始点的y坐标结束点的x坐标结束点的y坐标线条颜色线条宽度 draw.line((0, 0, 200, 200), fill(0, 0, 0), width5) # 从(0, 0)到(200, 200)画一条黑色线条宽度为5 # 画点 # 参数分别为点的x坐标点的y坐标点的颜色 draw.point((100, 100), fill(255, 0, 0)) # 在(100, 100)处画一个红色点 # 画圆 # 参数分别为圆心的x坐标圆心的y坐标半径填充颜色可选线条颜色可选线条宽度可选 draw.ellipse((50, 50, 150, 150), fill(0, 255, 0), outline(0, 0, 255)) # 画一个绿色的圆边缘为红色位置由矩形的左上角和右下角坐标定义 # 画矩形 # 参数分别为矩形左上角的x坐标矩形左上角的y坐标矩形右下角的x坐标矩形右下角的y坐标填充颜色可选线条颜色可选线条宽度可选 draw.rectangle((10, 10, 190, 190), fillNone, outline(0, 0, 255), width3) # 画一个红色的矩形框位置由左上角和右下角坐标定义 draw.text([100,100],python,red) # 显示图像 image.show()创建画笔之后就能在上一个步骤中创建的图片中根据自己的需要将生成的验证码画在图片上 4. 添加文字资源 font ImageFont.truetype(kumo.ttf, 28)使用pillow中的默认字体是正常的字体但是这种字体容易被爬虫给破解需要更换字体 5. 添加干扰 # 写干扰点 for i in range(20):draw.point([random.randint(0, self.width), random.randint(0, self.height)], fillself.random_color())# 写干扰圆圈 for i in range(20):draw.point([random.randint(0, self.width), random.randint(0, self.height)], fillself.random_color())x random.randint(0, self.width)y random.randint(0, self.height)draw.arc((x, y, x 4, y 4), 0, 90, fillself.random_color())# 画干扰线 for i in range(5):x1 random.randint(0, self.width)y1 random.randint(0, self.height)x2 random.randint(0, self.width)y2 random.randint(0, self.height)draw.line((x1, y1, x2, y2), fillself.random_color()) # 应用模糊滤镜增加干扰效果 self.img self.img.filter(ImageFilter.EDGE_ENHANCE_MORE)更换了字体后安全性也不是很高需要在图片上增加一些干扰的元素防止爬虫失败到图片中的验证码。 未增加干扰和增加干扰的对比 三、使用示例 现在我们可以将上述函数结合起来生成一个随机图片验证码并将其保存为文件或直接在网页上显示。 import random import string from PIL import Image, ImageDraw, ImageFilter, ImageFontclass ImageCode:def __init__(self, width120, height30, char_length5, font_filekumo.ttf, font_size28):self.width widthself.height heightself.char_code Noneself.char_length char_lengthself.font_file font_fileself.font_size font_sizeself.img Image.new(modeRGB, size(self.width, self.height), color(255, 255, 255))def random_code(self):生成指定长度的随机验证码all_chars string.ascii_letters string.digits # 包含大小写字母和数字random_code .join(random.choice(all_chars) for _ in range(self.char_length))return random_codestaticmethoddef random_color():生成随机颜色return (random.randint(0, 255), random.randint(10, 255), random.randint(64, 255))def draw_code(self, draw):画随机码font ImageFont.truetype(self.font_file, self.font_size)for i in range(self.char_length):char self.char_code[i]h random.randint(0, 4)draw.text([i * self.width / self.char_length, h], char, fontfont, fillself.random_color())def add_interfere(self, draw):添加干扰# 写干扰点for i in range(20):draw.point([random.randint(0, self.width), random.randint(0, self.height)], fillself.random_color())# 写干扰圆圈for i in range(20):draw.point([random.randint(0, self.width), random.randint(0, self.height)], fillself.random_color())x random.randint(0, self.width)y random.randint(0, self.height)draw.arc((x, y, x 4, y 4), 0, 90, fillself.random_color())# 画干扰线for i in range(5):x1 random.randint(0, self.width)y1 random.randint(0, self.height)x2 random.randint(0, self.width)y2 random.randint(0, self.height)draw.line((x1, y1, x2, y2), fillself.random_color())# 应用模糊滤镜增加干扰效果self.img self.img.filter(ImageFilter.EDGE_ENHANCE_MORE)def save_image(self, image_file):f open(image_file, wb)self.img.save(f, formatpng)def get_image_code(self):self.char_code self.random_code()draw ImageDraw.Draw(self.img, modeRGB)self.draw_code(draw)self.add_interfere(draw)image_file image_code.pngself.save_image(image_file)return image_file, self.char_codeif __name__ __main__:img_code ImageCode()image_file, image_code img_code.get_image_code()print(image_file, image_code) 运行上述代码后将生成一个名为image_code.png的图片文件其中包含了随机生成的验证码。你可以将此图片嵌入到你的网站中要求用户输入验证码以进行验证。 四、总结 本文介绍了如何使用Python生成随机图片验证码的过程。通过生成随机字符串和绘制干扰线我们可以创建一个安全可靠的验证码系统提高网站的安全性。你可以根据自己的需求进行进一步的扩展和优化例如添加更多的干扰元素、调整字体和颜色等。希望本文对你有所帮助
http://www.zqtcl.cn/news/298779/

相关文章:

  • 奥迪网站建设策划书wordpress取消评论审核
  • 无锡百度正规公司专业seo网站优化推广排名教程
  • 湖南城乡建设厅网站青岛网站推广招商
  • 网站备案信息加到哪里国际要闻军事新闻
  • 商河县做网站公司如何仿制国外网站
  • 网站如何跟域名绑定唐山正规做网站的公司哪家好
  • 网站建设wang.cdwordpress文章链接插件
  • 本地进wordpress后台搜索优化师
  • 网站备案证书下载失败法国 wordpress
  • 海南平台网站建设企业优秀的设计案例
  • 拿别的公司名字做网站合肥网页设计培训班
  • 到哪个网站做任务太原百度seo优化推广
  • 北京外贸网站开发广东智慧团建系统入口
  • 做百度网站接到多少客户电话阿里云服务器win系统建站教程
  • 天空在线网站建设深圳外贸网站怎么建
  • 网站的交流的功能怎么做小商品网站建设
  • 求职招聘网站建设投标书怎样在手机上面建设网站
  • 重庆工厂网站建设备案域名出售平台
  • 免费网站优化校园电商平台网站建设
  • 宁波市住房和城乡建设局网站成都网站建设网站制作
  • 网站制作还花钱建设银行网站查询密码是啥
  • 周到的做pc端网站产品图册设计公司
  • 淘宝客新增网站网页设计板式类型
  • 怎么使用wordpress建站吃什么补肾气效果好
  • 建设网站中期wordpress做分类信息网站
  • 百色住房和城乡建设部网站江苏交通建设监理协会网站
  • 常州网站建设哪儿好薇有哪些做外贸网站
  • ip域名找网站一级域名和二级域名的区别
  • 手机网站 底部菜单网站切换效果
  • 珠海公司做网站wordpress最近访客