当前位置: 高中信息技术 / 综合题
  • 1. (2022高二上·金华月考) 小明编写了一个将用户名通过加密生成密码的程序。用户名由小写字母和数字组成,加密的规则是:将用户名分成4位1组,按照密钥k分别做前移,其中字母在a到z之间循环前移,数字在0到9之间循环前移,密钥k的值为1到4之间的不重复随机整数(密钥k可以循环使用)。例如用户名为“abc3dey”,密钥k=[4,3,2,1],则生成的密码为“wya2zbw”。

    名称

    含义

    random.randint(a,b)

    随机产生一个[a,b]范围内的实数

    random.choice(seq)

    从序列seq中随机挑选一个元素

    random.shuffle(seq)

    将序列seq的所有元素随机排序

    1. (1) 根据题意,若输入用户名为“jqd25k”,密钥k=[1,4,2,3],则生成的密码是
    2. (2) 以下程序实现输入用户名,输出生成的密码,请在划线处填入合适的代码。

      import random

      k=[1,2,3,4]

      random.shuffle(k)

      s=list(input("请输入用户名:"))

      for i in range(len(s)):

         

          if "0"<=s[i]<="9":

              s[i]=str((int(s[i])-k[t])%10)

          elif  "a"<=s[i]<="z":

              s[i]=chr()

              password="".join(s)   # join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串

      print("你的密码为:",password)

    3. (3) 为了提高密码的安全等级,小明对上述代码进行了改进,若生成的密码只有一种类型的字符组成,则从特殊字符“!@#$%&”中随机选取一个字符作为密码的最后一位,例如生成的密码为“abcd”,则最终的密码可能为“abcd@”。python程序如下,请在划线处填入合适的代码。

      code="!@#$%&"

      #isalpha():用于判断字符串是否全部为字母

      #isdigit():用于判断字符串是否全部为数字

      if password.isalpha( ) or password.isdigit():

      password=

      print("你的密码为:",password)

微信扫码预览、分享更方便