python解密_Python解密

我目前正在从事一项家庭作业,我们必须构建一个函数,在其中编写一个三步加密/解密程序.我们必须构建的密码之一是变位/轨道围栏,该围栏接受变量(n)作为要加密消息的“轨道”数.我已经建立了加密,但是我m失去了解密方法.

这是针对python的入门级类,因此我们对下面的加密代码等基础知识了解不多.

如果您不确定我所说的换位加密/围栏是什么意思,这是一个示例…

Message = abcdefg

n = 3

最后将其加密为3个组(如n所示),这些组将为“ adg be cf”,然后从那里将它们重组为一个字符串“ adgbecf”.我的麻烦是将它们重新分解为“ adg be cf”的原始三个字符串,然后将其转换回原始值.

加密:

def trans_encrypt(message, n):

cipher = ""

for i in range(n):

for j in range(i, len(message), n):

cipher = cipher + message[j]

return cipher

当前解密(无效):

def trans_decrypt(cipher, n):

length = len(cipher) // n

message = ''

for i in range(length):

for j in range(n):

letter = (i + j * length)

message = message + cipher[letter]

return message

解决方法:

如果您的加密方法正确((有人评论说这不是密码),则满足以下条件:

您可以像这样进行加密:

>>> def trans_encrypt(message,n):

... return "".join([message[i::n] for i in range(n)])

...

>>> trans_encrypt(a,3)

'adgbecf'

我会给您一个有关解密的提示:

>>> b = 'adgbe cf '

>>> trans_encrypt(b,3)

'abcdefg '

我在“已加密”字符串中插入了空格,并仅对“已加密”字符串使用了加密方法对其进行解密.我得到了正确的结果,最后还有一些额外的预期空格.

由于这是家庭作业,我将让您弄清楚如何计算在哪里添加空格.

您的解密方法只能修改消息(插入空格),调用您的加密方法并删除尾随空白.

标签:encryption,python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值