Bonjour, je Ya.
Cette fois, je vais vous expliquer comment implémenter un mot de passe avec Slackbot + Python. Plus précisément, je vais expliquer les deux suivants.
・ Comment générer un mot de passe en Python ・ Générer un mot de passe avec Slackbot + Python
Pour les bases de Slackbot réalisé avec Python, veuillez lire "Créons Slackbot avec Python".
Vous pouvez créer un processus de génération de mot de passe relativement facilement en utilisant la bibliothèque aléatoire de Python.
Exemple d'implémentation de fonction
Argument 1: nombre de chiffres dans le mot de passe (par défaut 8)
Argument 2: type de chaîne de caractères(Par défaut: supérieur / inférieur / inférieur / nombre)
Valeur de retour: Mot de passe
Renvoie la chaîne de caractères pour le nombre de chiffres spécifié dans l'argument 1. De plus, l'argument 2 vous permet de spécifier des chaînes de caractères détaillées telles que «minuscules et chiffres», «majuscules et minuscules» et «majuscules uniquement».
import random
def make_password(digit=8, word_type=None):
words = ''
password = ''
uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
lowercase = 'abcdefghijklmnopqrstuvwxyz'
number = '0123456789'
#Tout spécifier s'il n'y a pas d'argument
if word_type is None:
word_type = ['uppercase', 'lowercase', 'number']
#Jugement des personnages à utiliser
if 'uppercase' in word_type:
words = words + uppercase
if 'lowercase' in word_type:
words = words + lowercase
if 'number' in word_type:
words = words + number
#Boucle de génération de mot de passe
for i in range(0, digit):
#Puisqu'il est retourné sous forme de tableau, obtenez la 0ème valeur
password = password + random.sample(words, 1)[0]
return password
Pour plus d'informations sur la façon d'implémenter les mots de passe, veuillez lire Implémenter la génération de mots de passe en Python.
Intégrez le processus ci-dessus dans la réponse Slackbot.
Argument 1: nombre de chiffres dans le mot de passe Argument 2: type de caractère de mot de passe
Spécifiez le type de caractère sous la forme suivante.
Nombres:Nombresのみ
Grands caractères alphanumériques: lettres majuscules et chiffres
Petits caractères alphanumériques: lettres et chiffres alphabétiques inférieurs
Alphabet:小文字と大文字のAlphabet
Grand alphabet: uniquement l'alphabet supérieur
Petit alphabet:Seulement des lettres minuscules
Autre: tous les caractères alphanumériques
Si vous répondez au canal avec message.send (), d'autres personnes verront le mot de passe, ce qui n'est pas très bon pour la sécurité. Par conséquent, il répond aux messages directs.
Les réponses aux messages directs peuvent être obtenues à l'aide de la bibliothèque Slacker.
Lors de l'utilisation de la messagerie directe, il est nécessaire de spécifier l'ID utilisateur au lieu du nom du canal. L'ID utilisateur est stocké dans le message.
#Obtenir l'ID utilisateur
user_id = message.user['id']
#Envoyer le mot de passe par message direct
slack = Slacker(slackbot_settings.API_TOKEN)
slack.chat.post_message(user_id, password, as_user=True)
L'exemple de mise en œuvre est le suivant.
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'
#Tout spécifier s'il n'y a pas d'argument
if word_type is None:
word_type = ['uppercase', 'lowercase', 'number']
#Jugement des personnages à utiliser
if 'uppercase' in word_type:
words = words + uppercase
if 'lowercase' in word_type:
words = words + lowercase
if 'number' in word_type:
words = words + number
#Boucle de génération de mot de passe
for i in range(0, digit):
#Puisqu'il est retourné sous forme de tableau, obtenez la 0ème valeur
password = password + random.sample(words, 1)[0]
return password
@respond_to('^Génération de mots de passe(.*)s(.*)$')
def response_pass(message, digit, param_type):
#Obtenir l'ID utilisateur
user_id = message.user['id']
#Séparation des motifs
if param_type == 'Nombres':
word_type = ['number']
elif param_type == 'Grands caractères alphanumériques':
word_type = ['lowercase', 'number']
elif param_type == 'Petits caractères alphanumériques':
word_type = ['lowercase', 'number']
elif param_type == 'Alphabet':
word_type = ['lowercase', 'uppercase']
elif param_type == 'Grand alphabet':
word_type = ['uppercase']
elif param_type == 'Petit alphabet':
word_type = ['lowercase']
else:
word_type = ['uppercase', 'lowercase', 'number']
#Génération de mot de passe
password = make_password(int(digit), word_type)
#Envoyer le mot de passe par message direct
slack = Slacker(slackbot_settings.API_TOKEN)
slack.chat.post_message(user_id, password, as_user=True)
message.send('J'ai envoyé mon mot de passe à un message direct!')
** ◆ Résultat d'exécution **
Le mot de passe a été envoyé au message direct.
Comme présenté ici, Slackbot peut être utilisé assez facilement comme outil de génération de mot de passe. C'est pratique si vous souhaitez créer un petit mot de passe.
Il existe également des sites de génération de mots de passe, mais l'avantage que les sites de génération humaine n'ont pas est qu'ils peuvent être personnalisés librement. Cette fois, un seul motif de caractères alphanumériques a été affiché, mais veuillez le personnaliser de différentes manières, par exemple en affichant plusieurs motifs et en permettant l'utilisation de symboles.
Comment utiliser Slackbot est également résumé dans le blog. Comment créer Slackbot ~ Python ~
Recommended Posts