[Python] Generiere ein Passwort mit Slackbot

Hallo, ich Ya.

Dieses Mal werde ich erklären, wie man ein Passwort mit Slackbot + Python implementiert. Im Einzelnen werde ich die folgenden zwei erklären.

-Wie man ein Passwort in Python generiert ・ Generieren Sie ein Passwort mit Slackbot + Python

Die Grundlagen von Slackbot mit Python finden Sie unter "Machen wir Slackbot mit Python".

So generieren Sie ein Passwort in Python

Mit der Zufallsbibliothek von Python können Sie relativ einfach einen Prozess zur Kennwortgenerierung erstellen.

Beispiel für die Funktionsimplementierung


Argument 1: Anzahl der Stellen im Passwort (Standard 8)
Argument 2: Zeichenkettentyp(Standard: obere / untere / untere / Nummer)
Rückgabewert: Passwort

Gibt die Zeichenfolge für die in Argument 1 angegebene Anzahl von Ziffern zurück. Darüber hinaus können Sie in Argument 2 detaillierte Zeichenfolgen wie "Kleinbuchstaben und Zahlen", "Groß- und Kleinbuchstaben" und "Nur Großbuchstaben" angeben.

import random


def make_password(digit=8, word_type=None):
    words = ''
    password = ''
    uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    lowercase = 'abcdefghijklmnopqrstuvwxyz'
    number = '0123456789'

    #Geben Sie alle an, wenn kein Argument vorhanden ist
    if word_type is None:
        word_type = ['uppercase', 'lowercase', 'number']
    #Beurteilung der zu verwendenden Zeichen
    if 'uppercase' in word_type:
        words = words + uppercase
    if 'lowercase' in word_type:
        words = words + lowercase
    if 'number' in word_type:
        words = words + number

    #Kennwortgenerierungsschleife
    for i in range(0, digit):
        #Da es als Array zurückgegeben wird, erhalten Sie den 0. Wert
        password = password + random.sample(words, 1)[0]

    return password

Weitere Informationen zum Implementieren von Kennwörtern finden Sie unter Implementieren der Kennwortgenerierung in Python.

Passwort mit Slackbot + Python generieren

Betten Sie den obigen Prozess in die Slackbot-Antwort ein.

Slackbot-Antwortspezifikationen

Argument 1: Anzahl der Stellen im Passwort Argument 2: Kennwortzeichentyp

Geben Sie den Zeichentyp in der folgenden Form an.

Zahlen:Zahlenのみ
Große alphanumerische Zeichen: Großbuchstaben und Zahlen
Kleine alphanumerische Zeichen: niedrigere alphabetische Buchstaben und Zahlen
Alphabet:小文字と大文字のAlphabet
Großes Alphabet: Nur oberes Alphabet
Kleines Alphabet:Nur Kleinbuchstaben
Sonstiges: Alle alphanumerischen Zeichen

Passwort an Direktnachricht senden

Wenn Sie mit message.send () auf den Kanal antworten, sehen andere Personen das Kennwort, was für die Sicherheit nicht sehr gut ist. Daher reagiert es auf Direktnachrichten.

Antworten auf Direktnachrichten können mithilfe der Slacker-Bibliothek erzielt werden.

Bei Verwendung von Direktnachrichten muss anstelle des Kanalnamens die Benutzer-ID angegeben werden. Die Benutzer-ID wird in der Nachricht gespeichert.

#Benutzer-ID abrufen
user_id = message.user['id']
#Passwort per Direktnachricht senden
slack = Slacker(slackbot_settings.API_TOKEN)
slack.chat.post_message(user_id, password, as_user=True)

Das Implementierungsbeispiel lautet wie folgt.

import random
from slackbot.bot import respond_to
from slacker import Slacker
import slackbot_settings

def make_password(digit=8, word_type=None):
    words = ''
    password = ''
    uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    lowercase = 'abcdefghijklmnopqrstuvwxyz'
    number = '0123456789'

    #Geben Sie alle an, wenn kein Argument vorhanden ist
    if word_type is None:
        word_type = ['uppercase', 'lowercase', 'number']
    #Beurteilung der zu verwendenden Zeichen
    if 'uppercase' in word_type:
        words = words + uppercase
    if 'lowercase' in word_type:
        words = words + lowercase
    if 'number' in word_type:
        words = words + number

    #Kennwortgenerierungsschleife
    for i in range(0, digit):
        #Da es als Array zurückgegeben wird, erhalten Sie den 0. Wert
        password = password + random.sample(words, 1)[0]

    return password


@respond_to('^Passwortgenerierung s(.*)s(.*)$')
def response_pass(message, digit, param_type):
    #Benutzer-ID abrufen
    user_id = message.user['id']

    #Trennung von Mustern
    if param_type == 'Zahlen':
        word_type = ['number']
    elif param_type == 'Große alphanumerische Zeichen':
        word_type = ['lowercase', 'number']
    elif param_type == 'Kleine alphanumerische Zeichen':
        word_type = ['lowercase', 'number']
    elif param_type == 'Alphabet':
        word_type = ['lowercase', 'uppercase']
    elif param_type == 'Großes Alphabet':
        word_type = ['uppercase']
    elif param_type == 'Kleines Alphabet':
        word_type = ['lowercase']
    else:
        word_type = ['uppercase', 'lowercase', 'number']

    #Passwortgenerierung
    password = make_password(int(digit), word_type)

    #Passwort per Direktnachricht senden
    slack = Slacker(slackbot_settings.API_TOKEN)
    slack.chat.post_message(user_id, password, as_user=True)

    message.send('Ich habe mein Passwort an eine direkte Nachricht gesendet!')

** ◆ Ausführungsergebnis ** Slackbotでパスワード生成

Das Passwort wurde an die Direktnachricht gesendet.

Slackbotでパスワード生成2

Am Ende

Wie hier vorgestellt, kann Slackbot relativ einfach als Tool zur Kennwortgenerierung verwendet werden. Es ist praktisch, wenn Sie ein kleines Passwort erstellen möchten.

Es gibt auch Websites zur Kennwortgenerierung, aber der Vorteil, den von Menschen erstellte Generierungsseiten nicht haben, besteht darin, dass sie frei angepasst werden können. Dieses Mal wurde nur ein Muster aus alphanumerischen Zeichen angezeigt. Passen Sie es jedoch auf verschiedene Arten an, z. B. indem Sie mehrere Muster anzeigen und die Verwendung von Symbolen ermöglichen.

Die Verwendung von Slackbot wird auch im Blog zusammengefasst. Wie man Slackbot ~ Python ~ macht

Recommended Posts

[Python] Generiere ein Passwort mit Slackbot
Generieren Sie XML (RSS) mit Python
Machen Sie eine Lotterie mit Python
Passwortverwaltung per Python: Schlüsselbund
Erstellen Sie ein Verzeichnis mit Python
Erstellen Sie einen einfachen Slackbot mit einer interaktiven Schaltfläche in Python
[Python] Was ist eine with-Anweisung?
Löse ABC163 A ~ C mit Python
Bedienen Sie den Belegdrucker mit Python
Generieren Sie mit SciPy eine Normalverteilung
Lassen Sie uns eine GUI mit Python erstellen.
Löse ABC166 A ~ D mit Python
Erstellen Sie eine virtuelle Umgebung mit Python!
Ich habe mit Python eine Lotterie gemacht.
Erstellen einer virtuellen Umgebung mit Python 3
Löse ABC168 A ~ C mit Python
Erstellen Sie ein Empfehlungssystem mit Python
Löse ABC162 A ~ C mit Python
Löse ABC167 A ~ C mit Python
Passwort für Lehrbuch mit Python generieren
Löse ABC158 A ~ C mit Python
Lassen Sie uns ein Diagramm mit Python erstellen! !!
[Python] Erbt eine Klasse mit Klassenvariablen
Ich habe mit Python einen Daemon erstellt
Generieren Sie das Display-Abzeichen für die Download-Anzahl der Python-Bibliotheken
Schreiben Sie ein Batch-Skript mit Python3.5 ~
[Pyenv] Erstellen einer Python-Umgebung mit Ubuntu 16.04
Generieren Sie eine erstklassige Sammlung in Python
Generieren Sie alle Dateien mit einer bestimmten Erweiterung
Spiralbuch in Python! Python mit einem Spiralbuch! (Kapitel 14 ~)
Erstellen Sie mit Class einen Python-Funktionsdekorator
[Python] Ein Programm, das Treppen mit # erstellt
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Installieren Sie Python als Framework mit pyenv
Erstellen Sie mit Python + PIL ein Dummy-Image.
Generieren Sie japanische Testdaten mit Python faker
Ich habe mit Python einen Zeichenzähler erstellt
[Python] Zeichnen eines Wirbelmusters mit einer Schildkröte
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen wir mit Python eine kostenlose Gruppe
Ein Memo mit Python2.7 und Python3 in CentOS
Erstellen einer Python 3.6-Umgebung mit Windows + PowerShell
Kartenmietinformationen auf einer Karte mit Python
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Dämonisieren Sie eine Python-Webanwendung mit Supervisor
Überprüfen Sie die Aktienkurse mit Slackbot mit Python
Lassen Sie uns mit Python langsam sprechen
Erstellt eine Reise von Darts mit Python (Nachrichten)
Vereinfachen Sie das Entsperren von PDF-Passwörtern mit Python + Bat
Ich habe eine funktionale Sprache mit Python ausprobiert
[Python] Eine schnelle Webanwendung mit Bottle!
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Schreiben Sie einen TCP-Client mit Python Twisted
Was ich mit Python-Arrays gemacht habe
Löse AtCoder ABC168 mit Python (A ~ D)
Versuchen Sie HTML-Scraping mit der Python-Bibliothek
Ich habe mit Python eine Hex-Map erstellt
Generieren Sie eine Klasse aus einer Zeichenfolge in Python