ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

模拟生成随机四位GB2312的汉字验证码(python3.X)

2020-12-15 12:33:02  阅读:241  来源: 互联网

标签:编码 val str1 random GB2312 汉字 验证码 python3


之前写过一个数字的随机验证码点击查看,这次写个生成汉字的,分两种编码方式,一种是Unicode编码,一种是GB2312编码,直接看代码:

import random
'''
下面注释的两行是UNICODE编码汉字,这中间有两万多个汉字,
包含繁体的生僻字,不推荐
'''
#val =random.randint(0x4e00,0x9fbf)
#print(chr(val))
'''
以下是GB2312编码范围:A1A1-FEFE,其中汉字的编码范围为B0A1-F7FE,
第一字节0xB0-0xF7(对应区号:16-87),第二个字节0xA1-0xFE(对应位号:01-94)。
'''  
i=0
str1 =""
for i in range(4):
    quhao = random.randint(0xb0, 0xd7)  #只选择常用的一级汉子3755个,所以只到0xd7为止
    weihao = random.randint(0xa1, 0xfe)
    #下面一行为格式化为十六进制字符串 x表示十六进制,表示二进制,d表示十进制,o表示八进制
    val = format(quhao,'x')+format(weihao,'x')  #此行代表也可以写成:val = f'{quhao:x}{weihao:x}'
    #下面一行表示从十六进制(hex)生成字节fromhex函数,再decode GB2312解码成汉字,
    str1 =str1 + bytes.fromhex(val).decode('gb2312')

print("验证码为:",str1)

运行后的结果:

Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
================= RESTART: C:\Users\Administrator\Desktop\2.py =================
验证码为: 舅进模箍
>>> 

标签:编码,val,str1,random,GB2312,汉字,验证码,python3
来源: https://blog.csdn.net/weixin_51424938/article/details/111197490

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有