用python编写密码验证程序_用python实现密码校验程序

密码需要符合下面的要求:

8个字符以上,包含数字,大小写,开头不能为特殊字符。

#! /usr/bin/python

import re

password = str(input())

def lenOK(pwd):

if(len(pwd)>=8):

return True

else:

print("WARNING: The password should be at least 8 characters.")

return False

def numberOK(pwd):

pattern = re.compile('[0-9]+')

match = pattern.findall(pwd)

if match:

return True

else:

print("WARNING: The password should include at least 1 number.")

return False

def upperOK(pwd):

pattern = re.compile('[A-Z]+')

match = pattern.findall(pwd)

if match:

return True

else:

print("WARNING: The password should include at least 1 upper character.")

return False

def lowerOK(pwd):

pattern = re.compile('[a-z]+')

match = pattern.findall(pwd)

if match:

return True

else:

print("WARNING: The password should include at least 1 lower character.")

return False

def symbolOK(pwd):

pattern = re.compile('^[a-z0-9A-Z]+')

match = pattern.findall(pwd)

if match:

return True

else:

print("WARNING: The password should start with numbers or characters.")

return False

def checkpwd(pwd):

check = lenOK(pwd) and numberOK(pwd) and upperOK(pwd) and lowerOK(pwd) and symbolOK(pwd)

if (check):

print("The password is legal.")

else:

print(check)

checkpwd(password)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个Python实现CRC16校验的示例程序: ```python def crc16(data): """ 计算CRC16校验和 """ # CRC16生成多项式,高16位为0xA001 crc = 0xFFFF for i in range(len(data)): crc ^= (ord(data[i]) << 8) for j in range(8): if crc & 0x8000: crc = ((crc << 1) ^ 0x1021) else: crc <<= 1 # 取反并交换高低字节得到校验码 crc = (~crc & 0xFFFF) crc = ((crc & 0xFF00) >> 8) | ((crc & 0x00FF) << 8) return crc ``` 这里使用的是CRC16-IBM算法,生成多项式为0x8005(或0xA001,因为它们是等效的),初始值为0xFFFF。函数接收一个字符串作为输入,并返回16位CRC校验和。在上面的实现中,将字符串中的每个字符视为一个字节,并依次将它们作为输入传递给CRC计算机。最后,通过将校验和取反并交换高低字节来生成最终的CRC校验码。 ### 回答2: CRC16是一种逐位计算的循环冗余校验码,可以用于对数据进行校验验证。下面是一个使用Python编写的CRC16校验程序示例: ```python def crc16(data): crc = 0xFFFF # 初始化CRC16为0xFFFF polynomial = 0x1021 # 生成多项式,用于计算CRC校验码 for byte in data: crc ^= byte << 8 # 将当前字节与CRC16取异或 for _ in range(8): # 循环8次,处理每个字节的8位 if crc & 0x8000: # 如果CRC16的最高位为1 crc = (crc << 1) ^ polynomial # 将CRC16左移一位并与多项式取异或 else: crc <<= 1 # 否则,将CRC16左移一位 crc &= 0xFFFF # 取CRC16的低16位作为校验码 return crc # 示例使用 data = bytearray([0x01, 0x02, 0x03, 0x04]) checksum = crc16(data) print(f"CRC16校验码为:{checksum:04X}") ``` 以上示例中,crc16函数接受一个字节数组作为输入数据,并通过运算得出校验码。具体实现过程中,使用了位操作和异或运算,对每个字节的每一位进行计算,最终得出CRC16校验码。 ### 回答3: CRC(循环冗余校验)是一种常用于检测和纠正数据传输错误的校验方法。CRC16位校验是CRC的一种常用变种,用于对16位数据进行校验。下面是用Python一个CRC16位校验程序: ```python def crc16(data): crc = 0xFFFF # 初始化CRC校验值为全1 poly = 0xA001 # 生成多项式,这里使用0xA001 for byte in data: crc ^= ord(byte) # 将数据字节与CRC值进行异或运算 for _ in range(8): if crc & 0x0001: crc >>= 1 crc ^= poly # 如果最低位为1,将CRC值右移一位并与多项式异或 else: crc >>= 1 return crc # 测试 data = "Hello, World!" # 待校验的数据 crc_value = crc16(data) print("CRC16校验值为:", hex(crc_value)) ``` 在这个程序中,我们定义了一个crc16()函数,它接受一个字符串参数data,并返回CRC16校验值。函数中使用了循环和位运算来计算CRC校验值。我们通过异或运算(^=)将数据字节与CRC值进行操作,然后根据最低位是0还是1来选择右移一位或者异或多项式进行操作。最后,我们通过调用crc16()函数并传入待校验的数据来获取CRC16校验值,并打印出来。 以上就是一个使用Python编写的CRC16位校验程序,希望对你有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值