def login(): if request.method == 'POST': name = str(request.form['name']) password = str(request.form['password']) user = db.session.query(User).filter_by(name=name).first() if user and cisco_type7.verify(password, user.password): flask_login.login_user(user) return redirect(url_for('base_blueprint.dashboard')) else: try: # tacacs_plus does not support py2 unicode, hence the # conversion to string. # TACACSClient cannot be saved directly to session # as it is not serializable: this temporary fixes will create # a new instance of TACACSClient at each TACACS connection # attemp: clearly suboptimal, to be improved later. encrypted_password = cisco_type7.hash(password) tacacs_server = db.session.query(TacacsServer).one() tacacs_client = TACACSClient( str(tacacs_server.ip_address), int(tacacs_server.port), str(cisco_type7.decode(str(tacacs_server.password)))) if tacacs_client.authenticate( name, password, TAC_PLUS_AUTHEN_TYPE_ASCII).valid: user = User(name=name, password=encrypted_password) db.session.add(user) db.session.commit() flask_login.login_user(user) return redirect(url_for('base_blueprint.dashboard')) except NoResultFound: pass return render_template('errors/page_403.html') if not flask_login.current_user.is_authenticated: form = LoginForm(request.form) return render_template('login/login.html', form=form) return redirect(url_for('base_blueprint.dashboard'))
def setting(request): if request.user.is_authenticated: if request.method == "POST": password_old = request.POST['password_old'] password = request.POST['password'] confirm = request.POST['pw_confirm'] pw_portal = request.POST['pw_portal'] if not (password_old and password and confirm): return render(request, 'login/setting.html') else: user = request.user profile = Profile.objects.get(user=request.user) if check_password(password_old, user.password): if password == confirm: user.set_password(password) user.save() profile.portal_pw = cisco_type7.hash(pw_portal) profile.save() ec.clear_items(profile) ec.fetch_and_save(profile) auth.login(request, user) return redirect('mainpage') else: return render(request, 'login/setting.html') return render(request, 'login/setting.html') else: return redirect('login')
def post(): if request.headers['Content-Type'] == 'application/json': req = request.json if "message" not in req: return not_valid(json.dumps(req)) key_id = random.randint(1, 64 ^ 4) #64**5 - 64**4*2) query = key_db.query.filter_by(id=key_id, used=False).first() while not query and key_id > 0: key_id = random.randint(1, key_id) query = key_db.query.filter_by(id=key_id, used=False).first() if key_id == 1 and not query: query = key_db.query.filter_by(used=False).first() key_id = 0 if not query: return internal_err() else: # mark key as used query.used = True db.session.commit() data = cisco_type7.hash(req['message']) new_msg = msg_db(query.url_key, data) db.session.add(new_msg) db.session.commit() url = '/'.join(['http:/', SERVER_HOST, 'read', query.url_key]) return jsonify({'url': url}) else: return not_supported(request.headers['Content-Type'])
def __init__(self, **kwargs): password = kwargs.pop('password') kwargs['password'] = cisco_type7.hash(password) for property, value in kwargs.items(): # depending on whether value is an iterable or not, we must # unpack it's value (when **kwargs is request.form, some values # will be a 1-element list) if hasattr(value, '__iter__') and not isinstance(value, str): value = value[0] setattr(self, property, value)
def user_factory(**kwargs): user = get_obj(User, name=kwargs['name']) if user: for property, value in kwargs.items(): if property in user.__dict__: if property == 'password': value = cisco_type7.hash(value) setattr(user, property, value) else: user = User(**kwargs) db.session.add(user) db.session.commit()
def user_factory(**kwargs): obj = get_obj(User, name=kwargs['name']) password = kwargs.pop('password') kwargs['password'] = cisco_type7.hash(password) if obj: for property, value in kwargs.items(): if property in obj.__dict__: setattr(obj, property, value) else: obj = User(**kwargs) db.session.add(obj) db.session.commit()
def create_account(): if request.method == 'GET': form = CreateAccountForm(request.form) return render_template('login/create_account.html', form=form) else: kwargs = request.form.to_dict() password = kwargs.pop('password') kwargs['password'] = cisco_type7.hash(password) user = User(**kwargs) db.session.add(user) db.session.commit() return redirect(url_for('users_blueprint.login'))
def type7(): valid_pwd = False while not valid_pwd: try: pwd = pwd_input() except KeyboardInterrupt: sys.exit(0) else: if (pwd_check(pwd)): # Create the hash hash = cisco_type7.hash(pwd) # Print the hash in Cisco syntax print( '\n' + f"Your Cisco Type 7 password hash is: {hash}") valid_pwd = True
def password(update, context): user = users[update.effective_user.id] passw = update.message.text # this hash is not a real hash, it's an encoding. This is not a security measure, it's simply to prevent plain-text storage. # I would use an actual hashing algorithm, but I needed to decode for autologin purposes. This is a simple way to do it hash = cisco_type7.hash(passw) bot.pool.execute( "INSERT INTO users (id, username, password, chat_id) VALUES (%s, %s, %s, %s);", (update.effective_user.id, user, hash, update.effective_chat.id)) bot.conn.commit() update.message.reply_text("You have been registered") chats[update.effective_chat.id] = [update.effect_user.id, context.bot] del users[update.effective_user.id] return ConversationHandler.END
def manage_users(): add_user_form = AddUser(request.form) delete_user_form = DeleteUser(request.form) print('ttt' * 100, request.form) if 'add_user' in request.form: kwargs = request.form.to_dict() password = kwargs.pop('password') kwargs['password'] = cisco_type7.hash(password) user = User(**kwargs) db.session.add(user) elif 'delete_user' in request.form: selection = delete_user_form.data['users'] db.session.query(User).filter(User.username.in_(selection))\ .delete(synchronize_session='fetch') if request.method == 'POST': db.session.commit() all_users = User.choices() delete_user_form.users.choices = all_users return render_template('manage_users.html', add_user_form=add_user_form, delete_user_form=delete_user_form)
def signup(request): if request.method == "POST": username = request.POST['username'] password = request.POST['password'] confirm = request.POST['pw_confirm'] id_portal = request.POST['id_portal'] pw_portal = request.POST['pw_portal'] if not (username and password and confirm and id_portal and pw_portal) or User.objects.filter(username=username).exists(): return render(request, 'login/signup.html') else: if password == confirm: user = User.objects.create_user(username=username, password=password) encrypted_portal_pw = cisco_type7.hash(pw_portal) profile = Profile(user=user, portal_id=id_portal, portal_pw=encrypted_portal_pw) profile.save() ec.fetch_and_save(profile) auth.login(request, user) return redirect('mainpage') return render(request, 'login/signup.html')
def process_kwargs(app, **kwargs): if 'source' in kwargs: source = retrieve(Device, name=kwargs.pop('source')) destination = retrieve(Device, name=kwargs.pop('destination')) kwargs.update({ 'source_id': source.id, 'destination_id': destination.id, 'source': source, 'destination': destination }) else: if app.production: app.vault_client.write( f'secret/data/device/{kwargs["name"]}', data={ 'username': kwargs.pop('username', ''), 'password': kwargs.pop('password', ''), 'secret_password': kwargs.pop('secret_password', '') } ) else: for arg in ('password', 'secret_password'): kwargs[arg] = cisco_type7.hash(kwargs.get(arg, '')) return Link if 'source' in kwargs else Device, kwargs
def set_new_values(index_array, index_id, value_list): new_values = { "$set": { "account." + str(index_array) + ".id": str(index_id), "account." + str(index_array) + ".account_number": cisco_type7.hash(value_list["account_number"]), "account." + str(index_array) + ".account_type": cisco_type7.hash(value_list["account_type"]), "account." + str(index_array) + ".brand": cisco_type7.hash(value_list["brand"]), "account." + str(index_array) + ".card_number": cisco_type7.hash(value_list["card_number"]), "account." + str(index_array) + ".cvv": cisco_type7.hash(value_list["cvv"]), "account." + str(index_array) + ".movements": [], "account." + str(index_array) + ".expiration_date": cisco_type7.hash(value_list["expiration_date"]) } } return new_values
def modify_card(self, account_number, card_number, cvv, expiration_date, account_type, brand, username, id): username_query = {"username": username} username_information = collection.find_one(username_query) account_list_len = len(username_information['account']) document_values = { "account_number": account_number, "card_number": card_number, "cvv": cvv, "expiration_date": expiration_date, "account_type": account_type, "brand": brand } if account_list_len is not None: print(self.username) username_values = {"username": username, "account.id": id} new_values = { "$set": { "account.$.account_number": cisco_type7.hash(document_values["account_number"]), "account.$.account_type": cisco_type7.hash(document_values["account_type"]), "account.$.brand": cisco_type7.hash(document_values["brand"]), "account.$.card_number": cisco_type7.hash(document_values["card_number"]), "account.$.cvv": cisco_type7.hash(document_values["cvv"]), "account.$.expiration_date": cisco_type7.hash(document_values["expiration_date"]) } } insert_user = collection.update_one(username_values, new_values) return "Modificado" else: return "nada"
from passlib.hash import cisco_type7 f = open('flag.txt', 'r') word = f.read().rstrip('\n') h = cisco_type7.hash(word) print(h)
def enc(): awal() putih = "\033[97m" dfv = raw_input(W + "[" + B + "+" + W + "] Your Text " + B + ": " + G) asw = raw_input(W + "[" + B + "+" + W + "] Your Password " + B + ": " + G) print W + "\n* Generate Hash . . . . Please Wait !!!" time.sleep(1) print(W + ' ------------------------------------------------') #md5 daf1 = hashlib.md5(dfv.encode("utf -8")).hexdigest() print W + "[" + B + "+" + W + "] Md5 " + B + ":" + W, daf1 time.sleep(0.1) #sha256 daf2 = hashlib.sha256(dfv.encode()).hexdigest() print W + "[" + B + "+" + W + "] Sha256 " + B + ":" + W, daf2 time.sleep(0.1) #sha224 daf4 = hashlib.sha224(dfv.encode()).hexdigest() print W + "[" + B + "+" + W + "] Sha224 " + B + ":" + W, daf4 time.sleep(0.1) #sha512 daf5 = hashlib.sha512(dfv.encode()).hexdigest() print W + "[" + B + "+" + W + "] Sha512 " + B + ":" + W, daf5 time.sleep(0.1) #sha384 daf6 = hashlib.sha384(dfv.encode()).hexdigest() print W + "[" + B + "+" + W + "] Sha384 " + B + ":" + W, daf6 time.sleep(0.1) #sha1 daf11 = hashlib.sha1(dfv.encode()).hexdigest() print W + "[" + B + "+" + W + "] Sha1 " + B + ":" + W, daf11 time.sleep(0.1) #pbkdf2_sha1 daf12 = pbkdf2_sha1.hash(dfv) print W + "[" + B + "+" + W + "] Pbkdf2_sha1 " + B + ":" + W, daf12 time.sleep(0.1) #pbkdf2_sha256 daf13 = pbkdf2_sha256.hash(dfv) print W + "[" + B + "+" + W + "] Pbkdf2_sha256 " + B + ":" + W, daf13 time.sleep(0.1) #pbkdf2_sha512 daf14 = pbkdf2_sha512.hash(dfv) print W + "[" + B + "+" + W + "] Pbkdf2_sha512 " + B + ":" + W, daf14 time.sleep(0.1) #sha256_crypt daf15 = sha256_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Sha256_crypt " + B + ":" + W, daf15 time.sleep(0.1) #sha512_crypt daf16 = sha512_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Sha512_crypt " + B + ":" + W, daf16 time.sleep(0.1) #md5_crypt daf17 = md5_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Md5_crypt " + B + ":" + W, daf17 time.sleep(0.1) #sha1_crypt daf18 = sha1_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Sha_crypt " + B + ":" + W, daf18 time.sleep(0.1) #sha1_crypt daf18 = sha1_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Sha_crypt " + B + ":" + W, daf18 time.sleep(0.1) #sun_md5_crypt daf19 = sun_md5_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Sun_md5_crypt " + B + ":" + W, daf19 time.sleep(0) #des_crypt daf20 = des_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Des_crypt " + B + ":" + W, daf20 time.sleep(0.1) #bsdi_crypt daf21 = bsdi_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Bsdi_crypt " + B + ":" + W, daf21 time.sleep(0.1) #bigcrypt daf22 = bigcrypt.hash(dfv) print W + "[" + B + "+" + W + "] Bigcrypt " + B + ":" + W, daf22 time.sleep(0.1) #crypt16 daf23 = crypt16.hash(dfv) print W + "[" + B + "+" + W + "] Crypt16 " + B + ":" + W, daf23 time.sleep(0.1) #phpass daf24 = phpass.hash(dfv) print W + "[" + B + "+" + W + "] Phpass " + B + ":" + W, daf24 time.sleep(0.1) #scram daf25 = scram.hash(dfv) print W + "[" + B + "+" + W + "] Scram " + B + ":" + W, daf25 time.sleep(0.1) #apr_md5_crypt daf27 = apr_md5_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Apr_Md5_Crypt " + B + ":" + W, daf27 time.sleep(0.1) #cta_pbkdf2 daf28 = cta_pbkdf2_sha1.hash(dfv) print W + "[" + B + "+" + W + "] Cta_pbkdf2_sha1 " + B + ":" + W, daf28 time.sleep(0.1) #dlitz_pbdf2_sha1 daf29 = dlitz_pbkdf2_sha1.hash(dfv) print W + "[" + B + "+" + W + "] Dlitz_pbkdf_sha1 " + B + ":" + W, daf29 time.sleep(0.1) #ldap_md5_crypt daf30 = ldap_md5_crypt.hash(dfv) print W + "[" + B + "+" + W + "] Ldap_Md5_Crypt " + B + ":" + W, daf30 time.sleep(0.1) #ldap_hex_md5 daf31 = ldap_hex_md5.hash(dfv) print W + "[" + B + "+" + W + "] Ldap_Hex_Md5 " + B + ":" + W, daf31 time.sleep(0.1) #ldao_hex_sha1 daf32 = ldap_hex_sha1.hash(dfv) print W + "[" + B + "+" + W + "] Ldap_Hex_Sha1 " + B + ":" + W, daf32 time.sleep(0.1) #ldap_pbkdf2_sha1 daf33 = ldap_pbkdf2_sha1.hash(dfv) print W + "[" + B + "+" + W + "] Ldap_pbkdf2_sha1 " + B + ":" + W, daf33 time.sleep(0.1) #ldap_pbkdf2_sha256 daf34 = ldap_pbkdf2_sha256.hash(dfv) print W + "[" + B + "+" + W + "] Ldap_pbkdf2_sha256 " + B + ":" + W, daf34 time.sleep(0.1) #ldap_pbkdf2_sha512 daf35 = ldap_pbkdf2_sha512.hash(dfv) print W + "[" + B + "+" + W + "] Ldap_pbdf2_sha512 " + B + ":" + W, daf35 time.sleep(0.1) #atlassian_pbkdf2_sha1 daf36 = atlassian_pbkdf2_sha1.hash(dfv) print W + "[" + B + "+" + W + "] Atlassian_pbkdf2_sha1 " + B + ":" + W, daf36 time.sleep(0.1) #fshp daf37 = fshp.hash(dfv) print W + "[" + B + "+" + W + "] Fshp " + B + ":" + W, daf37 time.sleep(0.1) #mysql323 daf38 = mysql323.hash(dfv) print W + "[" + B + "+" + W + "] Mysql323 " + B + ":" + W, daf38 time.sleep(0.1) #mysql41 daf39 = mysql41.hash(dfv) print W + "[" + B + "+" + W + "] Mysql41 " + B + ":" + W, daf39 time.sleep(0.1) #postgres_md5 daf40 = postgres_md5.hash(dfv, user=asw) print W + "[" + B + "+" + W + "] Postgres_md5 " + B + ":" + W, daf40 time.sleep(0.1) #oracle10 daf41 = oracle10.hash(dfv, user=asw) print W + "[" + B + "+" + W + "] Oracle10 " + B + ":" + W, daf41 time.sleep(0.1) #oracle11 daf42 = oracle11.hash(dfv) print W + "[" + B + "+" + W + "] Oracle11 " + B + ":" + W, daf42 time.sleep(0.1) #lmhash daf43 = lmhash.hash(dfv) print W + "[" + B + "+" + W + "] Lmhash " + B + ":" + W, daf43 time.sleep(0.1) #nthash daf44 = nthash.hash(dfv) print W + "[" + B + "+" + W + "] Nthash " + B + ":" + W, daf44 time.sleep(0.1) #msdcc daf45 = msdcc.hash(dfv, user=asw) print W + "[" + B + "+" + W + "] Msdcc " + B + ":" + W, daf45 time.sleep(0.1) #msdcc2 daf46 = msdcc2.hash(dfv, user=asw) print W + "[" + B + "+" + W + "] Msdcc2 " + B + ":" + W, daf46 time.sleep(0.1) #cisco_type7 daf47 = cisco_type7.hash(dfv) print W + "[" + B + "+" + W + "] Cisco_type7 " + B + ":" + W, daf47 time.sleep(0.1) #grub_pbkdf2_sha512 daf48 = grub_pbkdf2_sha512.hash(dfv) print W + "[" + B + "+" + W + "] Grub_pbkdf2_sha512 " + B + ":" + W, daf48 time.sleep(0.1) #hex_sha1 daf49 = hex_sha1.hash(dfv) print W + "[" + B + "+" + W + "] Hex_Sha1 " + B + ":" + W, daf49 time.sleep(0.1) #pwd daf50 = pwd.genword() print W + "[" + B + "+" + W + "] Pwd " + B + ":" + W, daf50 time.sleep(0.1) #mssql2005 daf51 = cuk.hash(dfv) print W + "[" + B + "+" + W + "] Mssql2005 " + B + ":" + W, daf51 time.sleep(0.1) #Mssql2000 daf52 = cak.hash(dfv) print W + "[" + B + "+" + W + "] Mssql2000 " + B + ":" + W, daf52 time.sleep(0.1) #ldap_salted_md5 daf52 = cik.hash(dfv) print W + "[" + B + "+" + W + "] Ldap_salted_md5 " + B + ":" + W, daf52 time.sleep(0.1)
def hash(a): h = cisco_type7.hash(a) return h
def __init__(self, **kwargs): self.ip_address = kwargs['ip_address'] self.password = cisco_type7.hash(kwargs['password']) self.port = int(kwargs['port']) self.timeout = int(kwargs['timeout'])
def __init__(self, **kwargs): self.ip_address = str(kwargs['ip_address'][0]) self.password = str(cisco_type7.hash(''.join(kwargs['password']))) self.port = int(''.join(kwargs['port']))
def Crypter(args): if args.encrypt == 'pbkdf2_sha256': return pbkdf2_sha256.hash(args.text) elif args.encrypt == 'oracle11': return oracle11.hash(args.text) elif args.encrypt == 'argon2': return argon2.hash(args.text) elif args.encrypt == 'bcrypt': return bcrypt.hash(args.text) elif args.encrypt == 'bcrypt_sha256': return bcrypt_sha256.hash(args.text) elif args.encrypt == 'cisco_asa': return cisco_asa.hash(args.text) elif args.encrypt == 'cisco_pix': return cisco_pix.hash(args.text) elif args.encrypt == 'cisco_type7': return cisco_type7.hash(args.text) elif args.encrypt == 'bigcrypt': return bigcrypt.hash(args.text) elif args.encrypt == 'bsdi_crypt': return bsdi_crypt.hash(args.text) elif args.encrypt == 'des_crypt': return des_crypt.hash(args.text) elif args.encrypt == 'hex_md4': return hex_md4.hash(args.text) elif args.encrypt == 'hex_md5': return hex_md5.hash(args.text) elif args.encrypt == 'hex_sha1': return hex_sha1.hash(args.text) elif args.encrypt == 'hex_sha256': return hex_sha256.hash(args.text) elif args.encrypt == 'hex_sha512': return hex_sha512.hash(args.text) elif args.encrypt == 'django_bcrypt': return django_bcrypt.hash(args.text) elif args.encrypt == 'django_disabled': return django_disabled.hash(args.text) elif args.encrypt == 'django_bcrypt_sha256': return django_bcrypt_sha256.hash(args.text) elif args.encrypt == 'django_des_crypt': return django_des_crypt.hash(args.text) elif args.encrypt == 'django_pbkdf2_sha1': return django_pbkdf2_sha1.hash(args.text) elif args.encrypt == 'django_pbkdf2_sha256': return django_pbkdf2_sha256.hash(args.text) elif args.encrypt == 'django_salted_md5': return django_salted_md5.hash(args.text) elif args.encrypt == 'django_salted_sha1': return django_salted_sha1.hash(args.text) elif args.encrypt == 'fshp': return fshp.hash(args.text) elif args.encrypt == 'ldap_bcrypt': return ldap_bcrypt.hash(args.text) elif args.encrypt == 'ldap_md5': return ldap_md5.hash(args.text) elif args.encrypt == 'ldap_plaintext': return ldap_plaintext.hash(args.text) elif args.encrypt == 'ldap_sha1': return ldap_sha1.hash(args.text) elif args.encrypt == 'ldap_bsdi_crypt': return ldap_bsdi_crypt.hash(args.text) elif args.encrypt == 'ldap_hex_md5': return ldap_hex_md5.hash(args.text) elif args.encrypt == 'ldap_hex_sha1': return ldap_hex_sha1.hash(args.text) elif args.encrypt == 'ldap_md5_crypt': return ldap_md5_crypt.hash(args.text) elif args.encrypt == 'ldap_pbkdf2_sha1': return ldap_pbkdf2_sha1.hash(args.text) elif args.encrypt == 'ldap_pbkdf2_sha256': return ldap_pbkdf2_sha256.hash(args.text) elif args.encrypt == 'ldap_pbkdf2_sha512': return ldap_pbkdf2_sha512.hash(args.text) elif args.encrypt == 'ldap_salted_md5': return ldap_salted_md5.hash(args.text) elif args.encrypt == 'ldap_salted_sha1': return ldap_salted_sha1.hash(args.text) elif args.encrypt == 'ldap_sha1_crypt': return ldap_sha1_crypt.hash(args.text) elif args.encrypt == 'ldap_sha256_crypt': return ldap_sha256_crypt.hash(args.text) elif args.encrypt == 'ldap_sha512_crypt': return ldap_sha512_crypt.hash(args.text) elif args.encrypt == 'apr_md5_crypt': return apr_md5_crypt.hash(args.text) elif args.encrypt == 'md5_crypt': return md5_crypt.hash(args.text) elif args.encrypt == 'plaintext': return plaintext.hash(args.text) elif args.encrypt == 'unix_disabled': return unix_disabled.hash(args.text) elif args.encrypt == 'unix_fallback': return unix_fallback.hash(args.text) elif args.encrypt == 'mssql2000': return mssql2000.hash(args.text) elif args.encrypt == 'mssql2005': return mssql2005.hash(args.text) elif args.encrypt == 'mysql323': return mysql323.hash(args.text) elif args.encrypt == 'mysql41': return mysql41.hash(args.text) elif args.encrypt == 'atlassian_pbkdf2_sha1': return atlassian_pbkdf2_sha1.hash(args.text) elif args.encrypt == 'cta_pbkdf2_sha1': return cta_pbkdf2_sha1.hash(args.text) elif args.encrypt == 'dlitz_pbkdf2_sha1': return dlitz_pbkdf2_sha1.hash(args.text) elif args.encrypt == 'grub_pbkdf2_sha512': return grub_pbkdf2_sha512.hash(args.text) elif args.encrypt == 'pbkdf2_sha1': return pbkdf2_sha1.hash(args.text) elif args.encrypt == 'pbkdf2_sha512': return pbkdf2_sha512.hash(args.text) elif args.encrypt == 'phpass': return phpass.hash(args.text) elif args.encrypt == 'roundup_plaintext': return roundup_plaintext.hash(args.text) elif args.encrypt == 'sun_md5_crypt': return sun_md5_crypt.hash(args.text) elif args.encrypt == 'scram': return scram.hash(args.text) elif args.encrypt == 'scrypt': return scrypt.hash(args.text) elif args.encrypt == 'sha1_crypt': return sha1_crypt.hash(args.text) elif args.encrypt == 'sha256_crypt': return sha256_crypt.hash(args.text) elif args.encrypt == 'sha512_crypt': return sha512_crypt.hash(args.text) elif args.encrypt == 'bsd_nthash': return bsd_nthash.hash(args.text) elif args.encrypt == 'lmhash': return lmhash.hash(args.text) elif args.encrypt == 'nthash': return nthash.hash(args.text)