Décrypter une chaîne chiffrée sur iOS avec Python

introduction

Cette technologie cryptographique inclut une partie de mon étude, donc si vous faites une erreur et que cela va l'améliorer, laissez un commentaire: arc:

environnement

chiffrement

Cette fois, nous utiliserons le cryptage à l'aide d'AES. Quelle que soit la quantité de communication HTTPS utilisée, à moins que des mesures MITM ne soient spécifiées, l'envoi et la réception de mots de passe, etc. seront visibles en texte brut. Cryptez au moins.

La mise en œuvre se fait du côté iOS.

Bibliothèque

Faire un projet de manière appropriée Installation de la bibliothèque

python


$ pod init

Podfile


pod 'CryptoSwift', '~> 0.6'

python


$ pod install

Source de l'échantillon

Hoge.swift


import Foundation
import CryptoSwift  //Au moment de la rédaction de cet article, "⌘+B "devrait être fait

class Hoge: NSObject {
    func hoge(_ text: String) {
        let bytes = [UInt8](text.utf8)
        //Changer chaque personne selon la méthode de la clé AES
        let key = [UInt8]("12345678901234567890123456789012".utf8)
        let iv: [UInt8] = AES.randomIV(AES.blockSize)

        do {
            let aes = try AES(key: key, iv: iv, blockMode: .CBC)
            let encrypted = try aes.encrypt(bytes)
            let encryptedData = Data(bytes: encrypted, count: encrypted.count)
            let sendData = NSMutableData(bytes: iv, length: iv.count)
            sendData.append(encryptedData)
            let sendDataBase64 = sendData.base64EncodedString(options: .lineLength64Characters)
            print("Encrypt: \(sendDataBase64)")
            // Encrypt: rLKCA1hNmqu2dq+08E9mK2lBlspQN0+CYBkWkCQz7IvHhh+qbfysc26Oh1SS4Adq
        } catch let error {
            print("Error: \(error)")
        }
    }
}

Je pense que j'ai pu le crypter comme ça. La chaîne de caractères utilisée cette fois est "Lorem ipsum dolor sit amet". Après cela, Alamofire volera vers le serveur. Je vais l'omettre.

Décryptage

En gros, j'utilise Django lors de la réalisation d'un côté serveur qui semble nécessiter un cryptage, mais je ne touche pas à la partie propre à Django, donc ce n'est pas mal ...

Bibliothèque

Il est recommandé car vous pouvez écrire le processus de cryptage et de décryptage très facilement.

Source de l'échantillon

decrypt.py


from simple_aes_cipher import AESCipher


encrypt = 'rLKCA1hNmqu2dq+08E9mK2lBlspQN0+CYBkWkCQz7IvHhh+qbfysc26Oh1SS4Adq'
cipher = AESCipher('12345678901234567890123456789012')
plain_text = cipher.decrypt(encrypt)

print(plain_text)  # Lorem ipsum dolor sit amet

Il semble qu'il ait été décrypté avec succès: clap :: clap :: clap ::

finalement

Si cela vous plaît, laissez un commentaire ou demandez une modification!

Recommended Posts

Décrypter une chaîne chiffrée sur iOS avec Python
Décrypter les fichiers cryptés avec OpenSSL avec Python 3
Un mémo contenant Python2.7 et Python3 dans CentOS
Carte des informations de location sur une carte avec python
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
Folium: Visualisez les données sur une carte avec Python
Visualiser grib2 sur une carte avec python (matplotlib)
Combinez des chaînes répétitives en une seule avec des expressions régulières Python.
Comment convertir / restaurer une chaîne avec [] en python
Faire un point d'arrêt sur la couche c avec python
J'ai créé un environnement Python3 sur Ubuntu avec direnv.
Remarques sur l'accélération du code Python avec Numba
[Python] Utiliser une séquence de chaînes
Créer un répertoire avec python
Format de chaîne avec l'opérateur Python%
Prenez rapidement une chaîne de requête avec API Gateway-> Lambda (Python)
[python] Inversez avec des tranches! !! (Il y a aussi un commentaire sur les tranches!)
Créer un message correspondant à la localisation avec la chaîne de traduction python
Récupérez la chaîne correspondante dans l'expression régulière et réutilisez-la lors du remplacement sur Python3
Construire un environnement Python sur Mac
[Python] Qu'est-ce qu'une instruction with?
Résoudre ABC163 A ~ C avec Python
Faites fonctionner l'imprimante de reçus avec python
Manuel de graphisme Python avec Matplotlib.
Construire un environnement Python sur Ubuntu
Résoudre ABC166 A ~ D avec Python
Créez un environnement virtuel avec Python!
J'ai fait une loterie avec Python.
Remplacement de chaîne par une expression régulière Python
Créer un système de recommandation avec python
Créer un environnement python dans centos
[Python] Générer un mot de passe avec Slackbot
Résoudre ABC162 A ~ C avec Python
Notes sur l'utilisation de rstrip avec python.
Résoudre ABC167 A ~ C avec Python
Résoudre ABC158 A ~ C avec Python
Faisons un graphe avec python! !!
Premiers pas avec Python 3.8 sous Windows
Créer un environnement python3 sur CentOS7
Créer une chaîne aléatoire en Python
[Python] Hériter d'une classe avec des variables de classe
J'ai créé un démon avec Python
Ecrire un script batch avec Python3.5 ~
[Memo] Tweet sur Twitter avec Python
Convertir en chaîne lors de la sortie de la sortie standard avec le sous-processus Python
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Notez ce que vous avez fait pour utiliser Flycheck avec Python
Créez un environnement Python 2.7 64 bits avec TDM-GCC et MinGW-w64 sous Windows 7
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
Essayez d'extraire une chaîne de caractères d'une image avec Python3
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Livre en spirale en Python! Python avec un livre en spirale! (Chapitre 14 ~)
Créer un décorateur de fonction Python avec Class
Créer un fichier power simple avec Python
[Python] Un programme qui crée des escaliers avec #
Faisons un jeu de shiritori avec Python
Exécutez le servo avec Python sur ESP32 (Windows)
Installer Python en tant que Framework avec pyenv