简单的密码加解密python脚本

这篇博客介绍了多种密码加密方法,包括base64编码与解码、MD5加密、莫斯密码、凯撒密码、仿射加密以及维吉尼亚密码。通过具体的Python代码展示了加密和解密的过程,适合对信息安全感兴趣的读者学习。
摘要由CSDN通过智能技术生成

 

目录

base64的编码与解码

md5加密

莫斯密码

凯撒密码

仿射加密

维吉尼亚密码


base64的编码与解码

base64的编码

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。

import base64
str = input("需要加密的明文:")
print((base64.b64encode(str.encode())).decode())

需要注意的就是原始的字符串需要先用encode()编码一下才能丢给b64encode()去编码,读取的时候需要decode()解码才能读

base64解码

en_str = input("需要解密的密文:")
print((base64.b64decode(en_str.encode())).decode())

md5加密

MD5信息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value,用于确保信息传输完整一致。

str = input("需要加密的明文:")
hash = hashlib.md5(str.encode())
hash.update(str.encode('utf-8'))
# 输出16进制的加密结果
print(hash.hexdigest())

莫斯密码

由两种基本信号和不同的间隔时间组成:短促的点信号" .",读(Di);保持一定时间的长信号"—",读(Da)。

加密

# 将莫斯密码的明文与密文分别放入两个列表中
morse_src = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ', ', '.', '?', '/', '-', '(', ')']
morse_en = ['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---', '-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.', '...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..', '.----', '..---', '...--', '....-', '.....', '-....', '--...', '---..', '----.', '-----', '--..--', '.-.-.-', '..--..', '-..-.'
仿射密码是一种古典密码,它使用的是一种线性变换方式进行加密和解密。在Python中,我们可以通过以下代码实现仿射密码加解密: ```python # 定义加密函数 def affine_encrypt(text, key): result = "" for char in text: if char.isupper(): result += chr((key[0] * (ord(char) - 65) + key[1]) % 26 + 65) elif char.islower(): result += chr((key[0] * (ord(char) - 97) + key[1]) % 26 + 97) else: result += char return result # 定义解密函数 def affine_decrypt(cipher, key): result = "" a_inverse = 0 for i in range(26): if (i * key[0]) % 26 == 1: a_inverse = i break for char in cipher: if char.isupper(): result += chr((a_inverse * (ord(char) - 65 - key[1])) % 26 + 65) elif char.islower(): result += chr((a_inverse * (ord(char) - 97 - key[1])) % 26 + 97) else: result += char return result # 测试 text = "affinecipher" key = (3, 5) cipher = affine_encrypt(text, key) print("加密结果:", cipher) plaintext = affine_decrypt(cipher, key) print("解密结果:", plaintext) ``` 在上面的代码中,我们首先定义了两个函数,分别是仿射密码的加密函数`affine_encrypt()`和解密函数`affine_decrypt()`。其中,加解密中都使用了一个由两个整数构成的密钥`key`,分别代表了仿射变换中的两个参数a和b。在加密过程中,我们先判断字符是大写字母、小写字母还是其他字符,然后根据字符的不同进行加密操作。在解密过程中,我们先求出a的逆元a_inverse,然后同样根据字符的不同进行解密操作。最后,我们对加解密函数进行了简单的测试,验证了代码的正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值