- 教程
- 教程
- 双倍强度加密(Double Strength Encryption)
- Python Overview and 安装
- Reverse Cipher
- Caesar Cipher
- ROT13算法(ROT13 Algorithm)
- 换位密码(Transposition Cipher)
- 转置密码的加密(Encryption of Transposition Cipher)
- 换位密码的解密(Decryption of Transposition Cipher)
- 加密文件(Encryption of files)
- 解密文件(Decryption of files)
- Base64编码和解码(Base64 Encoding & Decoding)
- XOR Process
- 乘法密码(Multiplicative Cipher)
- Affine Ciphers
- 黑客单字母密码(Hacking Monoalphabetic Cipher)
- 简单的替代密码(Simple Substitution Cipher)
- 简单替换密码的测试(Testing of Simple Substitution Cipher)
- 简单替换密码的解密(Decryption of Simple Substitution Cipher)
- Python Modules of Cryptography
- 了解Vigenere Cipher(Understanding Vignere Cipher)
- 实现Vigenere Cipher(Implementing Vignere Cipher)
- 一次性密码(One Time Pad Cipher)
- 一次性密码密码的实现(Implementation of One Time Pad Cipher)
- 对称和非对称密码学(Symmetric & Asymmetric Cryptography)
- 理解RSA算法(Understanding RSA Algorithm)
- 创建RSA密钥(Creating RSA Keys)
- RSA密码加密(RSA Cipher Encryption)
- RSA密码解密(RSA Cipher Decryption)
- 黑客攻击RSA密码(Hacking RSA Cipher)
- 资源
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
实现Vigenere Cipher(Implementing Vignere Cipher)
在本章中,让我们了解如何实现Vignere密码。 考虑文本This is basic implementation of Vignere Cipher进行编码,使用的密钥是PIZZA.
Code
您可以使用以下代码在Python中实现Vignere密码 -
import pyperclip
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
def main():
myMessage = "This is basic implementation of Vignere Cipher"
myKey = 'PIZZA'
myMode = 'encrypt'
if myMode == 'encrypt':
translated = encryptMessage(myKey, myMessage)
elif myMode == 'decrypt':
translated = decryptMessage(myKey, myMessage)
print('%sed message:' % (myMode.title()))
print(translated)
print()
def encryptMessage(key, message):
return translateMessage(key, message, 'encrypt')
def decryptMessage(key, message):
return translateMessage(key, message, 'decrypt')
def translateMessage(key, message, mode):
translated = [] # stores the encrypted/decrypted message string
keyIndex = 0
key = key.upper()
for symbol in message:
num = LETTERS.find(symbol.upper())
if num != -1:
if mode == 'encrypt':
num += LETTERS.find(key[keyIndex])
elif mode == 'decrypt':
num -= LETTERS.find(key[keyIndex])
num %= len(LETTERS)
if symbol.isupper():
translated.append(LETTERS[num])
elif symbol.islower():
translated.append(LETTERS[num].lower())
keyIndex += 1
if keyIndex == len(key):
keyIndex = 0
else:
translated.append(symbol)
return ''.join(translated)
if __name__ == '__main__':
main()
输出 (Output)
实现上面给出的代码时,您可以观察到以下输出 -
攻击Vignere密码的可能组合几乎是不可能的。 因此,它被认为是安全加密模式。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论