密码类

一、凯撒密码:
替换方法对信息中的每一个英文字符循环替换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('极强')
上一篇:阿里云物联网平台: Android 连接阿里云物联网平台


下一篇:PAT甲级1081 Rational Sum (20 分)