Exemplo n.º 1
0
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'))
Exemplo n.º 2
0
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')
Exemplo n.º 3
0
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'])
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
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()
Exemplo n.º 7
0
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
Exemplo n.º 9
0
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
Exemplo n.º 10
0
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)
Exemplo n.º 11
0
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')
Exemplo n.º 12
0
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
Exemplo n.º 13
0
 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
Exemplo n.º 14
0
 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"
Exemplo n.º 15
0
from passlib.hash import cisco_type7

f = open('flag.txt', 'r')
word = f.read().rstrip('\n')

h = cisco_type7.hash(word)
print(h)
Exemplo n.º 16
0
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)
Exemplo n.º 17
0
def hash(a):

    h = cisco_type7.hash(a)

    return h
Exemplo n.º 18
0
 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'])
Exemplo n.º 19
0
 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']))
Exemplo n.º 20
0
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)