两种方法思考密码安全性

方法一:
#前置条件
symbol='~!@#$%^&*()_=-/,.?<>;:[]{}\|'
letter='abcdefghijklmnopqrstuvwxyz'
nums='0123456789'
#判断密码安全性的程序
print('您好,请输入密码:')
passwd=input()
#首先判断一下用户输入的是不是空值
lenth=len(passwd)
while (lenth==0) or (passwd.isspace()):
    print('密码不能为空,请重新输入:')
    passwd=input()
    lenth=len(passwd)
#判断长度
if lenth<=8:
    lenrs=1
elif 8<lenth<=16:
    lenrs=2
else:
    lenrs=3
#判断是否有特殊符号
syrs=0
for each in symbol:
    if each in passwd:
        syrs+=1
#判断是否有字母
lers=0
for each in letter:
    if each in passwd:
        lers+=1
#判断是否有数字
numrs=0
for each in nums:
    if each in passwd:
        numrs=1
#整个的判断
if lenrs==1 or numrs==lenth or lers==lenth:
    print('您的密码安全系数较低')
elif lenrs==3 and syrs!=0 and lers!=0 and numrs!=0 and passwd[0] in letter:
    print('您的安全系数为高,请继续保持')
else:
    print('您的安全系数为中')
 
方法二:
# 密码安全性检查代码
#
# 低级密码要求:
#   1. 密码由单纯的数字或字母组成
#   2. 密码长度小于等于8位
#
# 中级密码要求:
#   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
#   2. 密码长度不能低于8位
#
# 高级密码要求:
#   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
#   2. 密码只能由字母开头
#   3. 密码长度不能低于16位
 
symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
 
passwd = input('请输入需要检查的密码组合:')
 
# 判断长度
length = len(passwd)
 
while (passwd.isspace() or length == 0) :
    passwd = input("您输入的密码为空(或空格),请重新输入:")
    length = len(passwd)
 
if length <= 8:
    flag_len = 1
elif 8 < length < 16:
    flag_len = 2
else:
    flag_len = 3
 
flag_con = 0
 
# 判断是否包含特殊字符
for each in passwd:
    if each in symbols:
        flag_con += 1
        break
    
# 判断是否包含字母
for each in passwd:
    if each in chars:
        flag_con += 1
        break
 
# 判断是否包含数字
for each in passwd:
    if each in nums:
        flag_con += 1
        break    
 
# 打印结果
while 1 :
    print("您的密码安全级别评定为:", end='')
    if flag_len == 1 or flag_con == 1 :
        print("低")
    elif flag_len == 2 or flag_con == 2 :
        print("中")
    else :
        print("高")
        print("请继续保持")
        break
 
    print("请按以下方式提升您的密码安全级别:\n\
    \t1. 密码必须由数字、字母及特殊字符三种组合\n\
    \t2. 密码只能由字母开头\n\
    \t3. 密码长度不能低于16位'")
    break

转载于:https://www.cnblogs.com/themost/p/6358887.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
密码算法是一种使用密钥和伪随机数生成器(PRNG)生成密钥流,将明文与密钥流进行异或运算来进行加密的算法。下面让我们来思考两个流密码算法的安全性和优缺点。 1. RC4(Rivest Cipher 4) 安全性: RC4 并不是一个非常安全的算法,存在诸如密钥长度不足、密钥流的偏置等问题,容易受到攻击。因此,现在不建议使用 RC4 算法。 优点: - RC4 算法非常简单,容易实现。 - RC4 算法加密速度非常快,适用于对实时性要求较高的数据传输。 缺点: - RC4 算法存在着许多安全问题,比如密钥长度不足和密钥流的偏置等问题。 - RC4 算法的密钥流是可预测的,这使得它容易受到攻击。 2. Salsa20 安全性: Salsa20 是一种安全性更高的流密码算法,被广泛应用于TLS、SSH、IPsec等安全协议中。它的安全性已被广泛认可。 优点: - Salsa20 算法具有非常高的安全性和抗攻击性。 - Salsa20 算法的加密速度比较快,适用于对实时性要求较高的数据传输。 - Salsa20 算法的密钥长度可以达到 256 位,可以满足更高的安全性需求。 缺点: - Salsa20 算法相对于 RC4 算法而言,实现起来稍微复杂一些。 - Salsa20 算法的性能在处理大量数据时可能会变差。 综上所述, Salsa20 算法相对于 RC4 算法而言具有更高的安全性和更灵活的密钥长度,但是实现起来稍微复杂一些,性能在处理大量数据时可能会变差。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值