File size: 1,371 Bytes
3cad9c7
 
 
 
 
6ece9ae
3cad9c7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6ece9ae
3cad9c7
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import gradio as gr
import joblib
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.calibration import CalibratedClassifierCV

def predictPasswordStrength(model, vectorizer, password_input):
    password_tfidf = vectorizer.transform([password_input])
    
    # Make predictions
    predicted_proba = model.predict_proba(password_tfidf)
    predicted_class = int(model.predict(password_tfidf)[0])  # Convert to Python integer
    output = ''
    if predicted_class == 0:
        output = "The password is very weak..."
    elif predicted_class == 1:
        output = "The password is average."
    else:
        output = "The password is strong. But alas, it is not unbreakable."

    confidence = float(predicted_proba.max())

    return password_input, output, confidence

model = joblib.load("helix-psa.pkl")
vectorizer = joblib.load("helix-psa-vectorizer.pkl")

demo = gr.Interface(
    fn=predictPasswordStrength,
    inputs=[gr.Textbox('Hello123', label='Password', info='The password to check the strength of', max_lines=1)],
    outputs=[gr.Dataframe(row_count = (2, "dynamic"), col_count=(3, "fixed"), label="Generated Names", headers=["Password", "Prediction", "Confidence"])],
    title='Helix - Password Strength Analyzer',
    description='A password strength analyzer, trained on over 10 million different passwords.'
)

demo.launch()