Python Secure Implementation Of AES-256-CTR Using Cryptography.Hazmat
A warning

You probably already saw this coming, but: I would be remiss if I didn't say it. 'Rolling your own to learn' is fine, but perhaps the most difficult and dangerous place to do it is cryptography. Cryptographic security is notoriously difficult to ascertain. The less you do yourself and the more you leave to well-reviewed, well-established libraries, the better.

Indentation

Python code typically sees three- or four-space tabs by convention; two is a little low.

Type hints

PEP484 allows for this:

def __init__(self,key):


to be (at a guess)

def __init__(self, key: bytes):


and this:

def encrypt(self,plain_text):


to become

def encrypt(self,plain_text: str) -&gt; str:


Helpful comments

This isn't one:

#Encryption Function


you're better off either deleting it, or writing a docstring with non-obvious documentation:

def encrypt(self,plain_text):
    """
    Encrypts a string using this object's key and the AES algorithm.
    Returns the encrypted result, as a base58-encoded string.
    """