|
import secrets |
|
import string |
|
|
|
def generate_token_and_secret_key(token_length=32, secret_key_length=64): |
|
""" |
|
Generate a secure random token and secret key. |
|
|
|
Args: |
|
token_length (int): Length of the token in bytes. |
|
secret_key_length (int): Length of the secret key in bytes. |
|
|
|
Returns: |
|
tuple: A tuple containing the token and secret key. |
|
""" |
|
# Generate a secure random token |
|
token = secrets.token_hex(token_length) |
|
|
|
# Generate a secure random secret key |
|
secret_key = secrets.token_hex(secret_key_length) |
|
|
|
return token, secret_key |
|
|
|
def generate_secure_password(length=16): |
|
""" |
|
Generate a secure random password. |
|
|
|
Args: |
|
length (int): Length of the password. |
|
|
|
Returns: |
|
str: A secure password. |
|
""" |
|
characters = string.ascii_letters + string.digits + string.punctuation |
|
password = ''.join(secrets.choice(characters) for i in range(length)) |
|
return password |
|
|
|
def save_to_file(filename, token, secret_key, password): |
|
""" |
|
Save the generated token, secret key, and password to a file. |
|
|
|
Args: |
|
filename (str): The name of the file to save the data. |
|
token (str): The generated token. |
|
secret_key (str): The generated secret key. |
|
password (str): The generated password. |
|
""" |
|
with open(filename, 'w') as file: |
|
file.write(f"Generated Token: {token}\n") |
|
file.write(f"Generated Secret Key: {secret_key}\n") |
|
file.write(f"Generated Password: {password}\n") |
|
|
|
def display_information(token, secret_key, password): |
|
""" |
|
Display the generated token, secret key, and password. |
|
|
|
Args: |
|
token (str): The generated token. |
|
secret_key (str): The generated secret key. |
|
password (str): The generated password. |
|
""" |
|
print(f"Generated Token: {token}") |
|
print(f"Generated Secret Key: {secret_key}") |
|
print(f"Generated Password: {password}") |
|
|
|
def main(): |
|
""" |
|
Main function to generate and display/save token, secret key, and password. |
|
""" |
|
# Length parameters |
|
token_length = 32 |
|
secret_key_length = 64 |
|
password_length = 16 |
|
|
|
# Generate token, secret key, and password |
|
token, secret_key = generate_token_and_secret_key(token_length, secret_key_length) |
|
password = generate_secure_password(password_length) |
|
|
|
# Display the information |
|
display_information(token, secret_key, password) |
|
|
|
# Save the information to a file |
|
save_to_file('credentials.txt', token, secret_key, password) |
|
|
|
print("\nCredentials have been saved to 'credentials.txt'.") |
|
|
|
# Wait for user input to keep the window open |
|
input("\nPress Enter to exit...") |
|
|
|
if __name__ == "__main__": |
|
main() |