prince_zxill 2022-02-17 15:31 采纳率: 0%
浏览 239
已结题

求如何制作一个图形文字验证码,不要灌水

不要发送链接。不要推荐那种有现成的程序的网站,它们做的和我的要求不符。达到我要求的人赏金100!

我想要达到的效果:

如下图所示(来源于科幻电影阿丽塔战斗天使。虽然是科幻电影,但这个程序是可以做出来的)

img

img

如图所示,屏幕我的网页,上面有一个密码。密码为图形且其中有花里胡哨的字符。

我想要的效果是:这是一个网站的登录界面。登录界面上有密码,密码由密码文字和图形组成。
每一次登录,图形不再是原来的图形,位置组合也不一样。字符本身不变,但位置变。
当以正确的顺序点击正确的密码文字所在的图形后,登录成功。

要求与备注:

1.语言仅限HTML,Python两种,可以加入一点Java。最好使用Python+HTML。Java和我的服务器语言不符。
2.完成者我会进行打赏。
3.做到图形不变,其他要求都做到的,也有赏。
4.本项目为个人闲着没事做着玩的,不要求精度太高,但要求密码不能被别人看到。
5.我的要求已经很明确了。
6.思路:
当点击符号所在的图片时,把某个变量设为一个英文字母或数字。
若 顺序正确 且 文字正确:
则 登录成功。

  • 写回答

2条回答 默认 最新

  • ilmss 2022-02-17 16:55
    关注
    
     # coding: utf-8
     import requests
     from PIL import Image
     from pytesseract import image_to_string, pytesseract
     
     pytesseract.tesseract_cmd = 'D:\\env\\Tesseract-OCR\\tesseract'
     # url
     base_url = 'https://hostxxx'
     code_url = base_url + '/common-platform/code'
     do_login_url = base_url + '/common-platform/doLogin'
     
    
     # 空白背景色 pytesseract 无法识别,更换了一下背景色
     def change_background(img_fp):
         try:
             img = Image.open(img_fp)
             x, y = img.size
             new_img = Image.new('RGBA', img.size, (255, 255, 255))
             new_img.paste(img, (0, 0, x, y), img)
             return new_img
         except:
             print u'更换图片背景失败'
     
     
     # 识别图片验证码
     def ocr2str(img):
         return str(image_to_string(img))
     
     
     # 创建 session
     session = requests.Session()
     # 请求图片验证码接口
     code_resp = session.request(method='GET', url=code_url, verify=False)
     # 保存图片验证码
     with open('code.png', 'wb') as f:
         f.write(code_resp.content)
     # 验证码
     code = ocr2str(change_background('code.png'))
     # 登录数据
     do_login_data = {
         'userName': 'user',
         'password': 'pwd',
         'verificationCode': code
     }
     # 登录接口
     do_login_resp = session.request(method='POST', url=do_login_url, data=do_login_data, verify=False)
     print do_login_resp.text  # 检验登录是否成功
    
    评论
    1人已打赏

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月20日
  • 修改了问题 2月19日
  • 修改了问题 2月19日
  • 赞助了问题酬金10元 2月18日
  • 展开全部

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路