aes00.py

# =========================================================
# Generate AES 256 (bit) keys
# =========================================================

import os
import sys

# ---------------------------------------------------------
# running Python 3?
# ---------------------------------------------------------

def RunningPython3():
    if sys.version_info[0] == 3:
        return True
    return False

# ---------------------------------------------------------
# get user imput
# ---------------------------------------------------------

def GetUserInput(prompt,py3):
    if py3:
        return input(prompt)
    else:
        return raw_input(prompt)

# ---------------------------------------------------------
#
# ---------------------------------------------------------

def strhex(s):

    def printable(c):
        if c < 0x20:
            return False
        if c > 0x7f:
            return False
        return True

    def chrhex(c):
        #print('({}) (len={}) ({})'.format(c,len(c),type(ord(c))))
        if printable(c):
            return c
        cc = ord(c)
        if cc <= 0xff:
            return r'\x{0:02x}'.format(cc)
        elif cc <= '\uffff':
            return r'\u{0:04x}'.format(cc)
        else:
            return r'\U{0:08x}'.format(cc)

    return ''.join(chrhex(c) for c in s)

# ---------------------------------------------------------
# main
# ---------------------------------------------------------

print('''
+--------------------------------------+
+   Generate AES 256 bit random Keys   +
+--------------------------------------+''')

py3 = RunningPython3()

while True:
    yn = GetUserInput('\nGenerate AES Key y/n [n]: ', py3)
    yn = yn.strip()
    if yn == '':
        break
    if yn[0] == 'y' or yn[0] == 'Y':
        key = os.urandom(32)
        print('')
        if py3:
            print('key =', key)
        else:
            key = 'b\'' + strhex(key) + '\''
            print('Key = ' + key)
        print('key type   = ' + str(type(key)))
        print('Key length = ' + str(len(key)))
    else:
        break
print('\n')