asdg 发表于 2022-11-8 23:51:58

维吉尼亚算法加密与解密

用Python编程使用维吉尼亚算法 将《锦瑟》全文加密,密钥“ Ilovelife”,并进行解密。跪求各位大佬解答{:5_92:}

tommyyu 发表于 2022-11-9 08:07:47

>>> poem = """锦瑟无端五十弦,一弦一柱思华年。庄生晓梦迷蝴蝶,望帝春心托杜鹃。沧海月明珠有泪,蓝田日暖玉生烟。此情可待成追忆,只是当时已惘然。"""
>>> secret = "Ilovelife"
>>> def turn_secret(n):
      global secret
      temp = chr(ord(poem)+ord(secret))
      secret = secret[:n] + temp + secret

   
>>>

>>> secret
'镯瓋晏筥仹厭徏イ乥\uf495\ue36fﵠ\uf58c\ue8bd\uf3e3앱\uf3f3𐪎﯂︕\U00012566\U00011ce3\U00011ce5\U0001947bﲊ\uf38cﮔ\uf532\uf7c7ﳋ𓎲앱\U00010216𐋦ﱷﭽ\U0001094fﱸ\U00010259\U0001947b\U00011a4c𐪟ﭔﰅ\U000108f8𐪎𐙎앱𐃓\uf634\ue95e\uf4f4\uf77f\U0001256c\uf535\U0001947b\ue959ﮞ\uf4c2ﭥ\uf361\uf647𐚥앱'

asdg 发表于 2022-11-9 09:15:45

tommyyu 发表于 2022-11-9 08:07


大佬,该怎么解密呢??

tommyyu 发表于 2022-11-9 09:16:42

asdg 发表于 2022-11-9 09:15
大佬,该怎么解密呢??

我现在编一下解密的程序

tommyyu 发表于 2022-11-9 09:26:12

代码:def encode(string, secret): #加密
    for n in range(len(string)):
      string = string[:n] + chr(ord(string)+ord(secret)) + string
    return string

def decode(string, secret): #解密
    for n in range(len(string)):
      string = string[:n] + chr(ord(string)-ord(secret)) + string
    return string
效果:>>> poem = "锦瑟无端五十弦,一弦一柱思华年。庄生晓梦迷蝴蝶,望帝春心托杜鹃。沧海月明珠有泪,蓝田日暖玉生烟。此情可待成追忆,只是当时已惘然。"
>>> secret = 'Ilovelife'
>>> password = encode(poem, secret)
>>> password
'镯瓋晏筥仹厭徏イ乥彯乬桠悓厳廠に廪疄暜椒遦蟪蟛ク构広暊怌拄柋麹で洓淠杮晳琩杵浙ツ蕂疜晎曼珮畨煋ぱ毚愪呛忮扶遢怏ク呙暥徸晢幛愾熛か'
>>> poem_1 = decode(password, secret)
>>> poem_1
'锦瑟无端五十弦,一弦一柱思华年。庄生晓梦迷蝴蝶,望帝春心托杜鹃。沧海月明珠有泪,蓝田日暖玉生烟。此情可待成追忆,只是当时已惘然。'
页: [1]
查看完整版本: 维吉尼亚算法加密与解密