import rsautils as ru p = int(input('prime 1: ')) q = int(input('prime 2: ')) n = p*q encrypted = ru.int2list(ru.base642int(input('encrypted message:\n')),n) tot = (p-1)*(q-1) e = int(input('e: ')) # Calculate d such that ed == 1 mod tot d = 1 # Guess while (e*d % tot != 1): d += 1 # Algorithm is currently extremely dumb def decrypt_block(blk): return blk**d % n decrypted = [decrypt_block(block) for block in encrypted] messagenum = ru.list2int(decrypted,n,endian="big") message = ru.int2string(messagenum) print(message)