Table des matières
Fainéantise et discusssion avec mon ami le bot
Être fainéant est une qualité précieuse pour tout artisan du numérique. Avoir un anglais correct également. Cela permet d’interagir efficacement avec des bots d’IA génératives.
Exemple ici avec ChatGPT 3.5 d’OpenAI, où j’ai demandé un code Python qui faisait le job par rapport à la description du challenge.
https://chat.openai.com/share/b9cba0f6-89f6-438c-bc27-b9c70f3901b7
Des retouches
Pas mal la sortie proposée. Mais il faut garder son esprit critique et faire quelques ajustements au code :
- le
byteorder='little'
est à supprimer pour les lectures. Nous ne sommes pas en train d’interpréter des signaux I/Q, nous sommes en train de réordonner des paquets de 4 octets entrelacés. - le
combined_hex.encode()
génère les bytes de la chaîne hexa avec l’encodage par défaut UTF-8, ce n’est pas ce qu’on veut. Nous voulons les bytes de la chaîne hexa (comme unxxd -r
quoi). Il faut donc utiliserbytes.fromhex()
.
Un code modifié
#!/usr/bin/env python3
import hashlib
def read_IQ_file(filename):
all_I_hex = ""
all_Q_hex = ""
with open(filename, 'rb') as file:
while True:
I_data = file.read(4)
if not I_data:
break
I_component = int.from_bytes(I_data)
all_I_hex += format(I_component, '08x')
Q_data = file.read(4)
if not Q_data:
break
Q_component = int.from_bytes(Q_data)
all_Q_hex += format(Q_component, '08x')
combined_hex = all_I_hex + all_Q_hex
hash_object = hashlib.sha256(bytes.fromhex(combined_hex))
sha256_hash = hash_object.hexdigest()
return sha256_hash
# Replace 'filename.iq' with the actual filename of your I/Q file
filename = 'file-format.iq'
result_hash = read_IQ_file(filename)