import random
import string


def gen_random_server_port(offset: int=2199):
    """
    Generates a valid random first and last character for a bots hostname
    and computes a port from these two characters.
    The default offset is chosen from a Sality implementation in 2011
    :param offset: port base for calculation
    :return: the generated server port
    """
    firstLetter = random.choice(string.ascii_letters);
    lastLetter = random.choice(string.ascii_letters + string.digits);
    return (offset + ord(firstLetter) * ord(lastLetter));