📜  Python中的密码

📅  最后修改于: 2022-05-13 01:54:29.053000             🧑  作者: Mango

Python中的密码

隐语症是双胞胎在学习自己的母语之前创建和使用的语言。由于没有人知道这种语言,它仍然是一个秘密。由于人类从来没有不遗余力,科学家们发现这种语言是通过错误发音我们都知道的现有语言而创造的。这不是让您想起加密吗?是的,它非常相似。我们需要做的就是更改特定语言的一些语法规则,以便读者应该知道这些规则才能解密它们。

使用的技术

众所周知,如果他们的第一个和最后一个字母是正确的,我们仍然可以正确地阅读一个拼写错误的单词。因此,这解释了单词中第一个和最后一个字母在正确阅读单词中的重要性。 Cryptophasia 明智地使用这种技术来加密一个单词。它更改单词的第一个和最后一个字母并对其进行加密。现在让我们看看达到这种状态所遵循的规则,这样除了知道这些规则的人之外,没有人可以解密这些单词。

规则:

  • 删除单词的第一个字母。请参阅下面的示例 
apple --> pple
  • 将第一个字母附加到单词的末尾。
pple --> pplea
  • 将字符串'ay' 附加到单词的末尾。
pplea --> ppleaay

单词“apple”已被加密为“ppleaay”。这样,任何单词都可以被加密成未知的形式,使读者难以理解。

执行

在编码之前,我们应该知道输入可以是任何形式。它们可能包含大写和小写字母、特殊字符、空格和数字。为了有效地加密它,我们不会使用大写字母和特殊字符。因为当单词中出现这些大写和特殊字符时,它甚至可以为读者提供有关单词的线索。

几种情况可以如下:

  • 大写字母大多出现在单词的开头。这可以为他们提供有关起始字母的线索。
  • 一些特殊字符仅在少数格式中专门使用,例如电子邮件 ID 中的 @、电话号码中的 + 等。

这使我们意识到确实需要:

  • 大写字母转换为小写字母。
  • 删除特殊字符

由于字符串是不可变的,因此很难对给定的单词进行更改。因此,将字符串转换为可变列表非常重要。在我们的程序中,由于我们正在处理单词的字母表,因此将单词的字母表拆分成一个列表起着重要作用。

下面是实现。

Python3
# Cleaning & Converting Text into List
def CleConvStr2List(text):
    A, B, C = ([] for i in range(3))
  
    # Split line into words
    A = text.split()
  
    # Removing special chars from word
    for i in range(len(A)):
        B.append(''.join(e for e in A[i] if e.isalnum()))
          
    while('' in B):
        B.remove("")
  
    # Split word into chars
    for i in range(len(B)):
        C.append(list(B[i]))
          
    return C
  
# Performing Cryptophasia
def Cryptophasia(text):
    C = []
    C = CleConvStr2List(text)
      
    for i in range(len(C)):
        C[i].append(C[i][0])
        C[i].append('a')
        C[i].append('y')
        del C[i][0]
          
    D = []
    word = ''
      
    for i in range(len(C)):
        D.append(word.join(C[i]))
          
    return " ".join(D)
  
# Driver Code
print(Cryptophasia('Apple'))
print(Cryptophasia('GeeksforGeeks'))
print(Cryptophasia('happy'))


输出:

ppleAay
eeksforGeeksGay
appyhay