Not bad at all, however I suggest you put separate boolean checks into parentheses, the code will be more readable, like
elif choice == "2" or choice == "sha1" or choice == "SHA-1" or choice == "SHA1" or choice == "sha-1":
should be
elif (choice == "2") or (choice == "sha1") or (choice == "SHA-1") or (choice == "SHA1") or (choice == "sha-1"):