密码类
作者:互联网
一、凯撒密码:
替换方法对信息中的每一个英文字符循环替换c#教程为字母表序列该字符后面的第三个字符,特殊符号不进行加密处理
对于原文中的字符P,其密文字符C满足如下条件:
凯撒密码的加密方法:C=(P+3)mod 26
凯撒密码的解密方法:P=(C-3)mod 26
加密第一种方法:
plaincode = input()
for p in plaincode:
if ord("a") <= ord(p) <= ord("z"):
print(chr (ord("a")+(ord(p)-ord("a")+3)%26),end='')
elif ord("A") <= ord(p) <= ord("Z"):
print(chr (ord("A")+(ord(p)-ord("A")+3)%26),end='')
else:
print(p,end='')
第二种方法:
输入格式:第一行是一个字符串;第二行是一个正整数
输出格式:一个字符串,内容为用户输入字符串加密后的结果
plaincode = input()
num = int(input())
'''
原文字符P,密文字符C,偏移量num满足下列条件
C = (P + num) mod 26
P = (C - num) mod 26
ord函数:返回用来表示内存中相应字符的实际二进制值(底层整数码-ASCII字节值)
chr函数:获取整数码并将其转换为对应的字符
'''
for p in plaincode: # 使用上面的方法计算
if ord("a") <= ord(p) <= ord("z"):
print(chr(ord('a')+(ord(p)-ord('a')+num)%26),end='')
elif ord("A") <= ord(p) <= ord("Z"):
print(chr(ord('A')+(ord(p)-ord('A')+num)%26),end='')
else:
print(p,end="")
二、黑客语解密:将英语中的英文字母替换为数字python基础教程和特殊符号
table = ’ '. maketrans (before , after) :创建映射表
str1 . translate(table) : 可以将table中的字符按映射表中的顺序进行替换
替换表:0 1 3 4 5 6 7 $
o i e a s g t s
str1 = input()
before = '0134567'
after = 'oieasgt'
table = ''.maketrans(before, after) #创建映射表
print(str1.translate(table))
三、密码强度判断:用户输入一个字符串作为密码,判断密码强度
#判断密码字符串长度是否大于8
#是否包含数字 string.digits 可返回'0123456789'
#是否包含小写字母 string.ascii_lowercase 可返回'abcdefghijklmnopqrstuvwxyz'
#是否包含大写字母 string.ascii_uppercase 可返回'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
#是否包含特殊字符 string.punctuation 可返回'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
#长度小于8弱密码,长度大于等于8且包含至少2种字符为中等强度,包含3种字符为较强,包含全部4种字符为极强。
import string
pwd = input()
strong = d = al = au = pu = 0
for ch in pwd:
if ch in string.digits: #是否包含数字
d = 1
elif ch in string.ascii_lowercase: #是否包含小写字母
al = 1
elif ch in string.ascii_uppercase: #是否包含大写字母
au = 1
elif ch in string.punctuation: #是否包含指定的标点符号
pu = 1
if len(pwd) < 8:
strong = 0
else:
strong = d + al + au + pu
if strong < 2:
print('弱')
elif strong == 2:
print('中')
elif strong == 3:
print('强')
elif strong == 4:
print('极强')
标签:字符,elif,string,包含,密码,strong 来源: https://blog.csdn.net/chinaherolts2008/article/details/114113314