ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python解密

2019-11-02 18:58:47  阅读:238  来源: 互联网

标签:encryption 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
来源: https://codeday.me/bug/20191102/1993439.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有