Vigenere算法实现加密和解密的Python程序

下美:Vigenere算法你知道吗,小可。小可!小可!醒醒!信息课上还敢睡!

小可:哦!(揉了揉眼睛)

下美:Vigenere算法实现加密和解密你知道吗?

小可:python写的吗?

下美:对啊!

小可:哈!我会!

信息课老师:你么两干啥呢?

下美:呃……是……

小可:哈哈,是py写的Vigenere算法实现加密和解密。

信息课老师:代码给我看看。

小可:

 

def encrypt(plaintext, key):
    ciphertext = ""
    key_index = 0
    for char in plaintext:
        if char.isalpha():
            shifted = (ord(char.upper()) + ord(key[key_index].upper()) - 2 * ord('A')) % 26
            if char.islower():
                ciphertext += chr(shifted + ord('a'))
            else:
                ciphertext += chr(shifted + ord('A'))
            key_index = (key_index + 1) % len(key)
        else:
            ciphertext += char
    return ciphertext

def decrypt(ciphertext, key):
    plaintext = ""
    key_index = 0
    for char in ciphertext:
        if char.isalpha():
            shifted = (ord(char.upper()) - ord(key[key_index].upper()) + 26) % 26
            if char.islower():
                plaintext += chr(shifted + ord('a'))
            else:
                plaintext += chr(shifted + ord('A'))
            key_index = (key_index + 1) % len(key)
        else:
            plaintext += char
    return plaintext

plain_text = input("请输入待加密的文本: ")
keyword = input("请输入加密关键词: ")

encrypted_text = encrypt(plain_text, keyword)
print("加密后的文本: ", encrypted_text)

decrypted_text = decrypt(encrypted_text, keyword)
print("解密后的文本: ", decrypted_text)

下美:完美啊!

信息课老师:呃……厉害!(心里其实想的:我刚想抄小可呢,睡觉!)

信息课老师:试一下!

小可:

 

信息课老师: 好吧。

下美,小可:醒醒老师! 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值