凯撒密码python编程代码
凯撒密码,也叫移位密码,是一种简单的加密算法。它是由古罗马大军领袖凯撒所使用的一种加密方式。凯撒密码是一种替换加密的技术,通过移动字母来对原来的文本进行混淆。在凯撒密码中,每一个字母都会向前或者向后移动一个固定的数量,这个数量就决定了加密的强度。
凯撒密码使用的是整数移位,使用较为简单,是最古老的密码之一。凯撒密码的加密算法如下:将明文的每一个字母都向后移动n个位置成为密文,其中n是一个整数。
代码实现
在python中,可以使用ord()函数来获取某个字符的ASCII码。同时,也可以使用chr()函数来将ASCII码转换为字符。
1.加密过程
对于凯撒密码的加密过程,可以定义一个函数caesar_encrypt(),实现将明文加密为密文的功能。函数的参数包括明文和移动距离。具体实现如下:
```python
def caesar_encrypt(plain_text, shift):
cipher_text = ""
for char in plain_text:
if char.isalpha():
if char.isupper():
cipher_text += chr((ord(char) + shift -65) % 26 + 65)
else:
cipher_text += chr((ord(char) + shift - 97) % 26 + 97)
else:
cipher_text += char
return cipher_text
```
在上述代码中,plain_text表示明文,shift表示移动距离。cipher_text表示加密后的密文字符串。代码中使用了字符的ASCII码,ord()函数来获取某个字符的ASCII码,chr()函数将ASCII码转换为字符。
需要注意的是,在加密过程中,只对字母进行加密,而对其他字符(例如空格、数字、标点等)不进行加密,直接复制到密文中即可。而且,对于大写字母和小写字母,需要分别处理。大写字母的ASCII码值范围为65-90,小写字母的ASCII码值范围为97-122。因此,在加密时需要分别对大写字母和小写字母进行处理。
2.解密过程
对于凯撒密码的解密过程,与加密过程基本相反。定义一个函数caesar_decrypt(),实现将密文解密为明文的功能。函数的参数包括密文和移动距离。具体实现如下:
```python
def caesar_decrypt(cipher_text, shift):
plain_text = ""
for char in cipher_text:
if char.isalpha():
if char.isupper():
plain_text += chr((ord(char) - shift - 65) % 26 + 65)
else:
plain_text += chr((ord(char) - shift - 97) % 26 + 97)python代码转换
else:
plain_text += char
return plain_text
```
在上述代码中,cipher_text表示密文,shift表示移动距离。plain_text表示解密后的明文字符串。
需要注意的是,在解密过程中,同样只对字母进行解密,对其他字符不进行解密。同时,解密时需要使用加密时使用的移动距离。
3.程序演示
使用上面定义的函数,可以实现凯撒密码的加密和解密功能。下面给出一个简单的程序演示:
```python
if __name__ == '__main__':
plain_text = "hello, world!"
shift = 3
cipher_text = caesar_encrypt(plain_text, shift)
print("明文:{}".format(plain_text))
print("移动距离:{}".format(shift))
print("加密后:{}".format(cipher_text))
print("--------------------------------------")
decrypted_text = caesar_decrypt(cipher_text, shift)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论