需要帮助来制作此加密器

时间:2019-02-28 20:31:20

标签: python encryption

您好,我有一个准备在学校GCSE级别上使用的加密程序,我需要帮助,因为我现在不知道它到底出了什么问题,我希望最终的数字弹出而不是一个加密的脚本,但是我得到了一个字符串索引错误我该如何解决?

# This asks a user for an input of text integers etc
text = input('Enter A Word : ')
# Empty Value used to store the encrypted value
encrypt = ''
# Empty temp value replaced at every iteration of the wencryption process
temp = ''
# Empty temp value replaced at every iteration of the wencryption process
temp2 = ''

# key used to shift the letters
key = int(input('Enter your key (their will be more encryption) : '))

for i in range(0,len(text)):
    # Rearranges text in a caps switch
    if str.islower(text[i]):
        temp += str.upper(text[i])
    elif str.isupper(text[i]):
        temp += str.lower(text[i])
    else:
        temp += text[i]

for j in range(0, len(temp)):
    temp = str(ord(temp[j]))
    temp2 += temp + str(key)
    encrypt += temp2

print(encrypt)

2 个答案:

答案 0 :(得分:1)

感谢大家的支持;我想出了解决该加密算法的方法。答案将在下面发布(PS显然可以使用)。 该Python脚本使用for和range函数将字符串分成每个单独的字符,以便可以重新排列。

首先,我执行一个简单的cAPS开关(在此期间没有必要),因此可以使我的加密器安全。然后,我使用ord函数将每个字符转换为等效的ascii,然后使用简单的密码技术,并要求一个简单的整数键(例如3 [Caesar]或13 [ROT13])。然后添加ascii值和密钥,以便ascii值相应地更改。

然后,我们使用chr函数将ascii数字转换为字符,该函数用于将ascii值转换为chr。完成此操作后,我们将使用串联将每个字母连接到最终变量,以便稍后在您的屏幕上显示!

enter code here

text = input('Enter A Word : ') ##This asks a user for an input of text integers etc
encrypt = '' ##Empty Value used to store the encrypted value
temp = '' ##Empty temp value replaced at every iteration of the encryption process
temp2 =0 ##Empty temp value replaced at every iteration of the encryption process
temp_val=0
temp_char=''

key=int(input('Enter your key (their will be more encryption) : '))##key used to shift the letters

for i in range(0,len(text)):
    ##Rearranges text in a caps switch
    if str.islower(text[i])==True:
        temp=temp+str.upper(text[i])
    elif str.isupper(text[i])==True:
        temp=temp+str.lower(text[i])
    else:
        temp=temp+text[i]
for j in range(0,len(temp)):
    temp_val=0
    temp2=0
    temp_val=ord(temp[j])
    temp2=temp2+temp_val+key
    temp_char=temp_char+chr(temp2)
    encrypt=temp_char
print(encrypt)
print(temp)
print(temp2)

答案 1 :(得分:0)

我不太了解temp=str(ord(temp[i]))应该发生什么。

此代码生成一个数字:

text = input('Enter A Word : ') ##This asks a user for an input of text integers etc
encrypt = '' ##Empty Value used to store the encrypted value
temp = '' ##Empty temp value replaced at every iteration of the wencryption process
temp2 = '' ##Empty temp value replaced at every iteration of the wencryption process

key=int(input('Enter your key (their will be more encryption) : '))##key used to shift the letters


for i in range(0,len(text)):
    ##Rearranges text in a caps switch
    if str.islower(text[i])==True:
        temp=temp+str.upper(text[i])
    elif str.isupper(text[i])==True:
        temp=temp+str.lower(text[i])
    else:
        temp=temp+text[i]
for j in temp:
    temp=str(ord(j))
    temp2=temp2+temp+str(key)
    encrypt=encrypt+temp2
print(encrypt)