Ecriture dans une cellule EXCEL (Zone Encryptée)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Yle
Niveau 5
Niveau 5
Messages : 167
Enregistré le : mar. 21 avr. 2009 17:22
Localisation : La NORMANDIE -76
Status : Hors ligne

Ecriture dans une cellule EXCEL (Zone Encryptée)

#1

Message par Yle »

Bonsoir

Je veux écrire dans une cellule un texte encrypté
Visiblement Excel ne le fait pas. Je dois faire une erreur mais je ne vois pas...

Code : Tout sélectionner

#include <Excel.au3>
#include <MsgBoxConstants.au3>
#include <Crypt.au3>

Local $oXL = _Excel_Open()
_Excel_BookNew($oXL, 1)
$oXL.ActiveSheet.Range("A1").Value = "TEST"
$oXL.ActiveSheet.Range("B1").Value = _Crypt_EncryptData ("encrypter", "2012", $CALG_RC4)
MsgBox(0,"Controle","La zone encrytée n'est pas mise en B1 : "  & _Crypt_EncryptData ("encrypter", "2012", $CALG_RC4))
_Excel_Close($oXL) ; Fermeture excel
Merci pour l'aide
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: Ecriture dans une cellule EXCEL (Zone Encryptée)

#2

Message par jchd »

Je doute fort qu'Excel accepte de stocker une valeur binaire dans une cellule. Convertir ce binaire en texte (hexa) d'abord.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Yle
Niveau 5
Niveau 5
Messages : 167
Enregistré le : mar. 21 avr. 2009 17:22
Localisation : La NORMANDIE -76
Status : Hors ligne

Re: Ecriture dans une cellule EXCEL (Zone Encryptée)

#3

Message par Yle »

JCHD Bonjour,

Effectivement avec un BINARYTOSTRING, les valeurs apparaissent dans EXCEL.
Dans Excel, on peut dire qu'une formule accepte du texte, donc 0XFD09382 c'est du texte non ?

Pour info : Mon programme date de 2012 (Suis en train de faire des modifications)
Avec la fonction _StringEncrypt et Excel 2010, j'arrivai parfaitement à écrire dans une cellule Excel la zone encryptée.. (0XFD09382)
J'ai comme l'impression qu'on régresse....
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: Ecriture dans une cellule EXCEL (Zone Encryptée)  

#4

Message par walkson »

Bonjour,
Je crois que Jchd voulait dire comme ça
#include <Excel.au3>
#include <MsgBoxConstants.au3>
#include <Crypt.au3>
_Crypt_Startup()
Local $oXL = _Excel_Open()
_Excel_BookNew($oXL, 1)
$oXL.ActiveSheet.Range("A1").Value = "TEST"
$iTest = "0x" & Hex(_Crypt_EncryptData ("encrypter", "2012", $CALG_RC4))
$oXL.ActiveSheet.Range("B1").Value = $iTest
MsgBox(0,"Controle", $iTest)
$iTestDC = $oXL.ActiveSheet.Range("B1").Value
MsgBox(0,"Controle",BinaryToString(_Crypt_DecryptData ($iTestDC, "2012", $CALG_RC4)))
_Excel_Close($oXL) ; Fermeture excel
_Crypt_Shutdown()
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: Ecriture dans une cellule EXCEL (Zone Encryptée)

#5

Message par jchd »

La fonction _StringEncrypt était non seulement un faux ami (chiffrement très faible voire inopérant) mais aussi fiévreusement bugguée. Elle et sa famille ont donc été abandonnées et remplacées par les fonctions _Crypt_* beaucoup plus solides. Il n'y a donc aucune régression ici. Voir l'aide pour constater que le retour de _Crypt_EncryptData est une valeur binaire, contrairement à sa pauvre aînée malade.

@walkson : tout à fait ça. Le préfixe "0x" n'est peut-être pas utile ici, mais si on en veut, pas la peine d'invoquer Hex() :
$iTest = "" & _Crypt_EncryptData ("encrypter", "2012", $CALG_RC4)
produit le même résultat.

Maintenant, il est plus prudent en règle générale de convertir le texte en UTF8 avant chiffrement et inversement au déchiffrement, sinon surprises !
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: Ecriture dans une cellule EXCEL (Zone Encryptée)

#6

Message par walkson »

Je ne veux pas polluer la demande de Yle mais j'ai du mal à comprendre la différence entre
$iTest = "0x" & Hex(_Crypt_EncryptData ("encrypter", "2012", $CALG_RC4)) et
$iTest = "" & _Crypt_EncryptData ("encrypter", "2012", $CALG_RC4)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
Yle
Niveau 5
Niveau 5
Messages : 167
Enregistré le : mar. 21 avr. 2009 17:22
Localisation : La NORMANDIE -76
Status : Hors ligne

Re: Ecriture dans une cellule EXCEL (Zone Encryptée)

#7

Message par Yle »

Bonsoir à vous 2,

Je ne connaissais pas cette subtilité pour passer une cellule Excel en format texte afin qu'elle accepte une zone binaire représentée en hexadécimal.

Quant à la différence entre '0X" & Hex(...) et "" & _Crypt_EncryptData (...), il y en a pas (je pense) du fait que l'algorithme $CALG_RC4 produit une chaîne binaire représentée en hexa...

Enfin, merci à vous deux de vous être penché sur mon problème
Je clos le sujet.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Ecriture dans une cellule EXCEL (Zone Encryptée)

#8

Message par orax »

walkson a écrit : dim. 09 juil. 2017 21:44 Je ne veux pas polluer la demande de Yle mais j'ai du mal à comprendre la différence entre
$iTest = "0x" & Hex(_Crypt_EncryptData ("encrypter", "2012", $CALG_RC4)) et
$iTest = "" & _Crypt_EncryptData ("encrypter", "2012", $CALG_RC4)

Code : Tout sélectionner

#include <Crypt.au3>
$iTest = "0x" & Hex(_Crypt_EncryptData("encrypter", "2012", $CALG_RC4))
ConsoleWrite(VarGetType($iTest) & @CRLF) ; affiche String
$iTest = "" & _Crypt_EncryptData("encrypter", "2012", $CALG_RC4)
ConsoleWrite(VarGetType($iTest) & @CRLF) ; affiche String
Je pense également qu'il n'y a pas de différence, puisque dans les deux cas le résultat est converti dans le type String et il est le même.
D'ailleurs, peut-être que $iTest = String(_Crypt_EncryptData ("encrypter", "2012", $CALG_RC4)) fonctionnerait aussi.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: Ecriture dans une cellule EXCEL (Zone Encryptée)

#9

Message par jchd »

Quant à la différence entre '0X" & Hex(...) et "" & _Crypt_EncryptData (...), il y en a pas (je pense) du fait que l'algorithme $CALG_RC4 produit une chaîne binaire représentée en hexa...
Pas du tout : _Crypt_EncryptData renvoie une valeur binaire (VarGetType -> Binary), ce qui n'a rien à voir avec une chaîne.
On peut aussi comme juste dit faire un String(XXX).

Un variant binaire converti en chaîne par conversion implicite (donc hexa) se voit ajouter le préfixe "0x". Hex(XYZ) renvoie la chaîne hexa sans ce préfixe.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre