使用python标准库加密字符串

时间:2018-01-11 21:22:29

标签: python string encryption

一些信息:

虽然这个问题在StackOverflow上重复多次,但是当用Google搜索时,会提出很多答案;这些都不是我想要的答案。我见过使用PyCrypto等库的答案,但没有一个帮助过。

问题:

我正在寻找一种简单的方法来加密python3中的字符串,只使用默认库。我想,例如,让python用数字或不同的字母替换字符串中的所有字母。下面是我的想法,除了它不是真正的python代码。如果有人能让它在python中运行(并且可能会缩小它),我将非常感激。

守则(不是真的):

def encrypt():
  for letter in string:
    if letter = 'a':
      letter.change_to('123')
    if letter = 'b':
      letter.change_to('133')
    if letter = 'c':
      letter.change_to('124')
    if letter = 'd':
      letter.change_to('143')
    # And so on... #

注意:如果您使用与上述方法不同的方法,如果您提供了解密字符串的方法,我将不胜感激,因为我仍然在学习,可能无法理解您的方法是如何工作的。< / p>

- 提前感谢你们所有人:)

编辑:我被要求写下为什么我不想使用任何外部库。这是因为我想加密从客户端程序发送到服务器程序的数据。客户端可能会在多台计算机上运行,​​我不想在所有计算机上安装所需的库(或让我的用户这样做)。

1 个答案:

答案 0 :(得分:1)

好的,这是使用chr()和ord()函数的所需版本,这些函数与名为ASCII的主题相关。 (一件好事要学习)

def encrypt(originalString):
    encryptedString = ""
    for letter in originalString:
        encryptedString += str(ord(letter))+"*"
    return encryptedString[:-1]

def decrypt(encryptedString):
    decryptedString = ""
    for codeNumber in encryptedString.split("*"):
        decryptedString += chr(int(codeNumber))
    return decryptedString


s = "The crow flies at midnight"
t = encrypt(s)
u = decrypt(t)

print(s)
print(t)
print(u)

输出:

乌鸦在午夜过得很快     84 * 104 * 101 * 32 * 99 * 114 * 111 * 119 * 32 * 102 * 108 * 105 * 101 * 115 * 32 * 97 * 116 * 32 * 109 * 105 * 100 * 110 * 105 * 103 * 104 * 116     乌鸦在午夜飞逝

相关问题