一些信息:
虽然这个问题在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>
- 提前感谢你们所有人:)
编辑:我被要求写下为什么我不想使用任何外部库。这是因为我想加密从客户端程序发送到服务器程序的数据。客户端可能会在多台计算机上运行,我不想在所有计算机上安装所需的库(或让我的用户这样做)。
答案 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 乌鸦在午夜飞逝