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

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

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

我想要达到的效果:

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

img

img

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

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

要求与备注:

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

  • 写回答

2条回答 默认 最新

  • ilmss 2022-02-17 08: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人已打赏
    prince_zxill 2022-02-17 09:34

    网页呢?

    回复
    prince_zxill 2022-02-18 02:30

    不会你可以不做。

    回复
    prince_zxill 2022-02-18 02:39

    不会的话请把这一条撤回,谢谢

    回复
  • 「已注销」 2022-02-18 00:20
    关注

    经常看见你水别人的,现在凭什么不让别人水你的了?

    评论
    prince_zxill 2022-02-18 02:24

    不想回答就不回答,不要占位置。

    回复
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月20日
  • 修改了问题 2月19日
  • 修改了问题 2月19日
  • 赞助了问题酬金10元 2月18日
  • 展开全部
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部