0
$\begingroup$
import binascii
import re
import base64

ptext = input("Enter Plaintext\n\n\n")
print(ptext)

key = input("Enter Key\n\n\n")
print(key)

ptext01 = ""
key01 = ""

for c in range(0, len(ptext)):
    ptext01 = ptext01 + ("%x" % ord(ptext[c]))

for c in range(0, len(key)):
    key01 = key01 + ("%x" % ord(key[c]))

i = 0
j = 0
s = ""

while j < (len(ptext01)):
    while i < (len(key01)):
        if len(str(hex(int(key01[i:][:+2], 16) ^ int(ptext01[j:][:+2], 16)))[2:]) == 1:
            s = s + "0" + str(hex(int(key01[i:][:+2], 16) ^ int(ptext01[j:][:+2], 16)))[2:]
        else:
            s = s + (hex(int(key01[i:][:+2], 16) ^ int(ptext01[j:][:+2], 16)))[2:]
        i += 2
        j += 2
        if j >= len(ptext01):
            break
    i = 0

result= int(s, 16)
encodedBytes = base64.b64encode(str(result).encode("utf-8"))
encodedStr = str(encodedBytes, "utf-8")

print(encodedStr)

This is the code used to cipher the text, and this is the ciphertext:

NDcyMDI5MDYwMzI3MjM5NDgxNjc0NTgxMDI5OTYxMzIxMDQ1MjMxOTA3OTI1MDg5NDU3MTEyNTc2ODcyMzAxMzQ2NTAzMDMzNTgzMzc5MDMwNzYyODQ2NTU2NjQ2MTQ4MzQ1NjAwODQwOTgyNTc3MzM0NDk2Mjk1MTM2MjA5OTEzMTc5ODUwNzg2NzQ3MTU3NDc5MjQ4OTc4MDk0NDQ1Njk4Mzc1ODIxNDI5NjkwNDQ5NzAyMDIwMjUyMzIyMTY2MTI0MzM1MDc3MTc1MDI2OTcwNzMzMDI4NjI4Mjg0OTcxNzA3Nzc4MDY5NDI4NzIzODQxNzM3MzE1NTgxMDA5MjIzMzQyODQ2MDAwMTY1OTU4NzA1MDM3Mjg0MzYxMzQyOTMzNDA2MTMzMTA4OTkxNDg3MTQ2Mjk1ODM0NTI1MDEzOTU5NDgwNzg5ODMyMDYwMTcwMzQ3NTk1NjQyNjQzOTgzOTAzODQzMTAzMDQ4Nzg0ODE1MTc2MzQwNTQxOTUwMzI0MDM2MTg2NDg2OTk4MDY5NDExNzI0OTQ2NDQ0MTU5ODMzNTczMTM2NzgwMzA1NjQwOTk0MTM1MTAyMjAzNTc5MTE5MzQxNzAwNTgxMDc3MDM5Mjc1MjM2OTE2NDYxOTEzMjI3NjgzNTIwMzU0MTA3MzY0ODY5NTE2MTY3NTMzNDIxMjQ0MTYxNzU4NzUzMTkzOTkwMzgwOTYxMTMzNzk2NTA1NDc3MTEyMDc2NzQ4NzAxMDYyNzI1MDUyNzkyMzk2MTMwNDg2NTc0NzU1MzI1NDkzOTUyODIwMTE0NzY3MjgwOTgxMTU3MDAxMjQ3MDU2OTA1NDcxMjUxODQ4OTA2NDIyMDUxNzQwNTI0Mzg5NjExNDM2Mzg0NTk4MDEzNzQ4Mjc5NTYwNTc3OTM2MzM1Nzc2NTI0MTMxNDEyNjEwNzc5MzI1Mjk0NjU4Mjc1NzU5Mzc1OTQyOTgwNTk0MTMzMjExMDc5NzQwNTQ1OTMxMDIwNTg1ODMyOTkyODEzNzczNzcxNjUyMzIyODQwNTIwOTk2ODYyNDQ3NjAzMzIwMjM3MTY3MzcxMTA5NTY1MzM2ODY3OTI4NDE0OTkyNjk1NjkyODU5NDUwOTQ2NTgxOTA2Nzc1ODczOTMzNzgwMDM5OTE=

$\endgroup$

1 Answer 1

2
$\begingroup$

I have briefly looked at the code. It is not well readable, but it looks like it is Vigenère cipher. It seems to operate on Unicode values of the characters, but it probably does not expect the Unicode value to be over 255 or lower than 16, so it can have troubles with some unicode characters. Finally, it is encoded to base64 in order to produce ASCII characters.

So, you can use known cryptanalysis for Vigenère cipher. There are probably also some tools, but you will likely need to adjust the input.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.