[Apprendre Python] Combien de secondes faut-il pour atteindre le mot de passe à 4 chiffres randint / for / time /

** Ce que vous voulez faire ** En regardant mon iPhone, je me demandais combien de temps il faudrait pour casser le verrouillage du mot de passe à 4 chiffres. Un calcul rapide montre qu'il devrait y avoir 10000 combinaisons de 10 à la 4ème puissance de "0000" à "9999". J'ai essayé de mesurer combien de secondes il faudrait pour détecter le mot de passe en arrondissant cela à l'aide de Python.

"8400 tr / min. 420 chevaux Au moment où vous avez fini de lire cette phrase Accélérez à 100 km / h. " Il s'agit d'une phrase promotionnelle pour la BMW M3 Coupé qui a été publiée dans un magazine automobile il y a environ 10 ans.

Est-ce plus rapide ou plus lent que ça? Rivaliser avec la BMW M3 Coupé!

Contexte ・ Je suis un débutant en Python. ・ J'ai appris les bases, mais je ne sais pas comment l'appliquer, je ne l'utilise pas au travail et je suis un peu moins motivée.

** En pensant ** ・ Le code PIN à 4 chiffres est supposé être une combinaison de 4 chiffres de 0 à 9 qui sont souvent utilisés sur les mots de passe bancaires et les écrans de verrouillage des smartphones. -En supposant que vous ne connaissez pas le code PIN, il est généré aléatoirement à l'aide d'une fonction aléatoire. -Essayez le round robin de "0000" à "9999", et s'il y a une correspondance, le message "iPhone déverrouillé" sera affiché.

code

pin_code_breaker.py


from random import randint
import time
        
pin_n = randint(0, 9999)

def iphone_unlock(pin_n):
    for i in range(0, 9999):
        print(format(i, '04'))
        if i == pin_n:
            print(f"PIN is {pin_n}, iPhone unlocked.")
            break
    else:
        print('Process finished.')
        
        
start = time.time()
iphone_unlock(pin_n)
elapsed_time = time.time() - start
print(f"elapsed time: {elapsed_time}")

** Considération ** -Depuis que la correspondance est essayée à tour de rôle à partir de 0000, plus le code PIN généré est jeune (plus proche de 0000), plus le temps de traitement est court et plus il est grand (plus proche de 9999), plus le temps de traitement est long. ・ Cependant, le processus est terminé dans les 3 secondes au maximum. ・ Il s'est avéré que le mot de passe à 4 chiffres lui-même est sans défense.

Recommended Posts

[Apprendre Python] Combien de secondes faut-il pour atteindre le mot de passe à 4 chiffres randint / for / time /
Combien de mois faudra-t-il pour rembourser la dette? [Python]
Comment définir plusieurs variables dans une instruction Python for
Comment créer un package Python (écrit pour un stagiaire)
Comment utiliser l'apprentissage automatique pour le travail? 03_Procédure de codage Python
Les bases de l'apprentissage Python ~ Comment générer (afficher) une chaîne de caractères ~
Mettre le processus en veille pendant un certain temps (secondes) ou plus en Python
[Python] Comment forcer une méthode d'une sous-classe à effectuer un processus spécifique
Que diriez-vous d'Anaconda pour créer un environnement d'apprentissage automatique avec Python?
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Comment obtenir la différence de date et d'heure en secondes avec Python
Prenons la version gratuite "Introduction à Python pour l'apprentissage automatique" en ligne jusqu'au 27/04
[Python] Il était très pratique d'utiliser la classe Python pour le programme ROS.
Comment arrêter le programme jusqu'à une date et une heure spécifiques en python
Comment générer un code QR et un code à barres en Python et le lire normalement ou en temps réel avec OpenCV