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....
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é.
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)
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.
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)
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)
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é.