You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Vous pouvez remplacer l'ancien algorithme par le nouveau , et donc réécrire de façon plus propre.
Le nouvelle algorithme fonctionne de la façon suivante : A chaque ligne d'un tableau de N lignes est associé un bit ( 1 ou 0) . En permutant les lignes du tableau, nous pouvons écrire un message en stockant un caractères pour 8 lignes ( 1 Byte) . Si toutes les lignes ne sont pas utilisé, nous utiliserons les bits restants comme bit de correction d'erreur en utilisant l'algorithme de Reed Solomon. https://pypi.org/project/reedsolo/
Algorithme du bit par lignes
On concatène les colonnes d'une ligne dans un series de string. On peut mettre en arguments les colonnes souhaité :
df=pd.read_csv("iris.csv")
serie=df.astype(str)[selected_columns].sum(axis=1)
# serie = pd.Series["truc", "bidule"... ]
On hash chaque string avec une fonction de de hashage HMAC ( = avec mot de passe ). On prend le premier octet du hash et on recupère son modulo 2 pour obtenir un bit
serie=serie.apply(lambdax: hmac.new("mot de passe", x, hashlib.sha256).digest()[0] %2 )
serie=pd.Series[1,0,0,1,0,1,......]
On encode le message souhaité en permuttant les lignes. Ce qu'on peut faire, c'est considéré la serie comme un pool de 1 et de 0, et venir piocher les bits qd y a besoin
# shuffle en preservant les index s=s.sample(frac=1)
message=b"hello"permutations= []
forbyteinmessage:
forbitinbytes : # Avec des operations bit a bit idx=s[s==bit][0] # On recupere un bit de la liste et le garde permutations.append(idx)
dels[idx] # On continue jusqu'a epuisement ..
On reordonne le dataframe avec les nouvelles permutations
df=df.loc[permutations] # Pas confondre iloc et loc
Vous pouvez remplacer l'ancien algorithme par le nouveau , et donc réécrire de façon plus propre.
Le nouvelle algorithme fonctionne de la façon suivante : A chaque ligne d'un tableau de N lignes est associé un bit ( 1 ou 0) . En permutant les lignes du tableau, nous pouvons écrire un message en stockant un caractères pour 8 lignes ( 1 Byte) . Si toutes les lignes ne sont pas utilisé, nous utiliserons les bits restants comme bit de correction d'erreur en utilisant l'algorithme de Reed Solomon. https://pypi.org/project/reedsolo/
Algorithme du bit par lignes
Utilisation en ligne de commande
The text was updated successfully, but these errors were encountered: