关键词搜索

源码搜索 ×
×

密码类

发布2021-02-26浏览338次

详情内容

一、凯撒密码:
替换方法对信息中的每一个英文字符循环替换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="")
     
    
      9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    二、黑客语解密:将英语中的英文字母替换为数字python基础教程和特殊符号

    table = ’ '. maketrans (before , after) :创建映射表

    str1 . translate(table) : 可以将table中的字符按映射表中的顺序进行替换

    替换表:0 1 3 4 5 6 7 $

               o   i  e  a  s  g  t   s   
    
    • 1
    str1 = input()
    before = '0134567'
    after = 'oieasgt'
    table = ''.maketrans(before, after)     #创建映射表
    print(str1.translate(table))
     
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    三、密码强度判断:用户输入一个字符串作为密码,判断密码强度

    #判断密码字符串长度是否大于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('极强')
    
      9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    相关技术文章

    最新源码

    下载排行榜

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载