Merge branch 'master' of https://dwarves.iut-fbleau.fr/gitiut/madelaine/publicMasters
probablement un push de Pierre que je n'ai pas
This commit is contained in:
commit
e0e23617d1
25
python/5/TP.md
Normal file
25
python/5/TP.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
## Implementation du chiffrement de Vernam
|
||||||
|
|
||||||
|
On souhaite construire un ensemble de fonctions qui permet de faire du chiffrement à la Vernam.
|
||||||
|
|
||||||
|
Pour cela on a besoin des fonctions suivantes :
|
||||||
|
|
||||||
|
- Générer une clé dans un fichier dont la longueur sera égale à la longueur du message. On génèrera cette clé dans un fichier ```vernam.txt```. Ce qui est généré c'est une suite d'entiers (compris entre 0 et 127; 7 bits) séparés par un espace.
|
||||||
|
|
||||||
|
```python
|
||||||
|
def genereVernam (long, fic):
|
||||||
|
```
|
||||||
|
|
||||||
|
où ```long``` est la longueur du message et ```fic``` est le nom du fichier dans lequel la clé sera enregistrée.
|
||||||
|
|
||||||
|
|
||||||
|
- Ecrire une fonction (```encode```) qui prend un fichier (le message) en argument et qui génère un fichier (le coder) qui est la suite des caractères du message représentés sous forme d'entiers (compris entre 0 et 127)
|
||||||
|
|
||||||
|
```python
|
||||||
|
def encode(fic_m, fic_enc)
|
||||||
|
```
|
||||||
|
|
||||||
|
- Ecrire une fonction ```chiffrage``` qui prend en arguments 2 fichiers (le message codé et la clé et qui produit le message chiffré : $f[i] + g[i] \mod 256$
|
||||||
|
|
||||||
|
|
||||||
|
|
13
python/5/c2byte.py
Normal file
13
python/5/c2byte.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
r = ''
|
||||||
|
|
||||||
|
x = ord('a')
|
||||||
|
while ((x/2) != 0):
|
||||||
|
if ((x % 2) == 0):
|
||||||
|
r = r+'0'
|
||||||
|
else:
|
||||||
|
r = r+'1'
|
||||||
|
x = x / 2
|
||||||
|
|
||||||
|
print(c2byte('a'))
|
||||||
|
|
1
python/5/cle.txt
Normal file
1
python/5/cle.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
wo4Fo\F( u
|
54
python/5/codage.py
Executable file
54
python/5/codage.py
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import random
|
||||||
|
|
||||||
|
file_message = open("message.txt", "r")
|
||||||
|
file_cle = open("cle.txt", "w")
|
||||||
|
file_code = open("code.txt", "w")
|
||||||
|
|
||||||
|
## Supposons que message.txt contienne
|
||||||
|
## Il
|
||||||
|
## fait
|
||||||
|
## beau!
|
||||||
|
|
||||||
|
lignes = file_message.readlines()
|
||||||
|
|
||||||
|
for message in lignes:
|
||||||
|
|
||||||
|
longM = len(message)
|
||||||
|
|
||||||
|
cle = ""
|
||||||
|
|
||||||
|
for i in range(longM):
|
||||||
|
j = random.randint(0,127)
|
||||||
|
l = chr(j)
|
||||||
|
cle = cle + l
|
||||||
|
|
||||||
|
file_cle.write(cle)
|
||||||
|
|
||||||
|
|
||||||
|
messagecode = ""
|
||||||
|
|
||||||
|
for i in range (longM):
|
||||||
|
ccode = chr( (ord(message[i]) + ord(cle[i])) % 127)
|
||||||
|
messagecode = messagecode + ccode
|
||||||
|
|
||||||
|
file_code.write(messagecode)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
file_message.close()
|
||||||
|
file_cle.close()
|
||||||
|
file_code.close()
|
||||||
|
|
1
python/5/code.txt
Normal file
1
python/5/code.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Jdy(Yf)jk8
|
36
python/5/esr.py
Executable file
36
python/5/esr.py
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
|
||||||
|
# Polarité;Action;Fait;Valeur;Ordre
|
||||||
|
f = open("fr-esr-referentiel_de_transformation_numerique_esr.csv","r")
|
||||||
|
|
||||||
|
lignes = f.readlines()
|
||||||
|
|
||||||
|
chiffres = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
|
||||||
|
|
||||||
|
### Recherche de l'indice de la colonne 'Ordre'
|
||||||
|
entete = lignes[0].split(';')
|
||||||
|
print (entete)
|
||||||
|
# entete = ['Polarité', 'Action', 'Fait', 'Valeur', 'Ordre']
|
||||||
|
indice = 0
|
||||||
|
while (entete[indice] != 'Ordre') and (entete[indice] != 'Ordre\n'):
|
||||||
|
indice = indice + 1
|
||||||
|
print("indice : ", indice)
|
||||||
|
|
||||||
|
ordre_min_actuel = 1000000
|
||||||
|
num_ligne = 0
|
||||||
|
i = 0
|
||||||
|
for ligne in lignes:
|
||||||
|
l = ligne.split(';')
|
||||||
|
# l[indice][0] c'est le premier caractère
|
||||||
|
# l[indice] == '89'== ['8', '9']
|
||||||
|
if l[indice][0] in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
|
||||||
|
|
||||||
|
if int(l[indice]) < ordre_min_actuel:
|
||||||
|
|
||||||
|
ordre_min_actuel = int(l[indice])
|
||||||
|
num_ligne = i
|
||||||
|
i = i + 1
|
||||||
|
|
||||||
|
|
||||||
|
print(lignes[num_ligne])
|
17
python/5/exoNote.py
Executable file
17
python/5/exoNote.py
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
nomFic = input("Entrer un nom de fichier : ")
|
||||||
|
|
||||||
|
f = open(nomFic, "r")
|
||||||
|
|
||||||
|
lignes = f.readlines()
|
||||||
|
|
||||||
|
c = 0
|
||||||
|
|
||||||
|
for ligne in lignes:
|
||||||
|
for i in range(len(ligne)):
|
||||||
|
if ligne[i] == 'a':
|
||||||
|
c = c + 1
|
||||||
|
|
||||||
|
f.close()
|
||||||
|
print("il y a ", c, " 'a' dans le ficher!")
|
3
python/5/message.txt
Normal file
3
python/5/message.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Il
|
||||||
|
fait
|
||||||
|
beau!
|
14
python/Ctrl1/DivEnt.py
Normal file
14
python/Ctrl1/DivEnt.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
num = int(input("Entrer un numérateur : "))
|
||||||
|
denum = int(input("Entrer un dénominateur : "))
|
||||||
|
|
||||||
|
global num1
|
||||||
|
global v
|
||||||
|
|
||||||
|
num1 = num
|
||||||
|
v = 0
|
||||||
|
if (num >= 0) and (denum > 0):
|
||||||
|
while (num1 - denum) >= 0:
|
||||||
|
num1 = num1 - denum
|
||||||
|
v = v+1
|
||||||
|
r = num1
|
||||||
|
print("La division", num, " par ", denum, " est égale à ", v, " et il reste ", r)
|
@ -1,13 +1,30 @@
|
|||||||
[!Note] Exercice (division entière)
|
### Exercice (division entière)
|
||||||
>On cherche à calculer la division entière de 2 nombres entiers positifs par la méthode de la soustraction.
|
On cherche à calculer la division entière de 2 nombres entiers positifs par la méthode de la soustraction.
|
||||||
>1. Demander à l’utilisateur un numérateur
|
|
||||||
>2. Demander à l’utilisateur un denominateur
|
1. Demander à l’utilisateur un numérateur
|
||||||
>3. Vérifier que les 2 valeurs sont positives (et non nulle pour le dénominateur)
|
2. Demander à l’utilisateur un denominateur
|
||||||
>4. Écrire le boucle qui fait la division
|
|
||||||
>5. Afficher le résultat sous la forme suivante
|
3. Vérifier que les 2 valeurs sont positives (et non nulle pour le dénominateur)
|
||||||
>
|
|
||||||
>```
|
4. Écrire le boucle qui fait la division
|
||||||
>Entrer un numérateur : 1248
|
|
||||||
>Entrer un dénominateur : 2
|
5. Afficher le résultat sous la forme suivante
|
||||||
>La division 1248 par 2 est égale à 624 et il reste 0
|
|
||||||
>```
|
|
||||||
|
```sh
|
||||||
|
Entrer un numérateur : 1248
|
||||||
|
Entrer un dénominateur : 2
|
||||||
|
La division 1248 par 2 est égale à 624 et il reste 0
|
||||||
|
```
|
||||||
|
|
||||||
|
13 diviser par 4
|
||||||
|
|
||||||
|
13 - 4 = 9 (1 soustraction)
|
||||||
|
|
||||||
|
9 - 4 = 5 (2 soustractions)
|
||||||
|
|
||||||
|
5 - 4 = 1 (**3** soustractions)
|
||||||
|
|
||||||
|
**1** - 4 < 0 STOP
|
||||||
|
|
||||||
|
On a fait 3 soustractions et il reste 1 donc 13 = **3** * 4 + **1**.
|
Loading…
Reference in New Issue
Block a user