PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 17-08-2007 07:33:31

ossarc  
Membre Geek
Date d'inscription: 17-08-2007
Messages: 32
Pépites: 145
Banque: 0

[RESOLU] Base64

Bonjour,

J'utilise pb10.5 avec appel de webservice. Dans ces appels,
je dois passer un fichier Word en Blob après l'avoir encoder en
base64. Comme on veut avoir la main sur le code, il faut
créer la méthode permettant d'encoder le fichier.
Est-ce que quelqu'un peut m'aider ?

Merci

Hors ligne

 

#2 17-08-2007 07:42:39

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Base64

ossarc a écrit:

Bonjour,

J'utilise pb10.5 avec appel de webservice. Dans ces appels,
je dois passer un fichier Word en Blob après l'avoir encoder en
base64. Comme on veut avoir la main sur le code, il faut
créer la méthode permettant d'encoder le fichier.
Est-ce que quelqu'un peut m'aider ?

Merci


HS
T'arrive tout droit d'un autre forum toi non ?


Hors ligne

 

#3 17-08-2007 08:08:43

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Base64

Bonjour,

tu as la possibilité d'utiliser des fonctions du SGBDR
* Oracle : UTL_ENCODE.Base64_Encode et UTL_ENCODE.Base64_Decode
* Sybase : BASE64_ENCODE et BASE64_DECODE
...

ou alors celles de l'objet n_winsock : of_decode et of_encode


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#4 17-08-2007 08:16:44

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Base64

thezerg a écrit:


HS
T'arrive tout droit d'un autre forum toi non ?


developpez.net ?
Moi aussi j'en viens.

pick Ouic avait répondu http://www.rgagnon.com/pbdetails/pb-0258.html
et Ossarc : "J'ai déjà eu cette page mais je ne sais pas comment m'en servir"

Le principe est pourtant assez simple : Microsoft fourni des services de cryptographie dans Windows.
La dll crypt32.dll permet, entre autres, l'encodage et le décodage en base 64.

Crée un objet non visuel, coche autoinstantiate (facultatif, mais pas plus mal)
Dans "local external function" fait un copier-coller du script [local function declaration] de Real Gagnon

Dans "instance variables" fait un copier-coller du script [instance variables] de Real Gagnon (tiens cette phrase me rappelle quelque chose)

Ensuite tu crée deux fonctions correspondant aux deux scripts suivants. A ce stade tu dois maitriser le copier-coller



eRasorZ : les deux fonctions dont tu parle dans n_winsock  encodent en base64 ?
(peux pas vérifier moi-même, impossible de télécharger le moindre zip)


never let people work on more than one thing at once.

Hors ligne

 

#5 17-08-2007 08:19:23

ossarc  
Membre Geek
Date d'inscription: 17-08-2007
Messages: 32
Pépites: 145
Banque: 0

Re: [RESOLU] Base64

Bonjour,

je sais que ces fonctions existent, j'ai su les employer. Le problème est
qu'il faut que je créé le code d'encodage car on veut avoir la main sur le code .

Voilà mon pb

Hors ligne

 

#6 17-08-2007 08:41:24

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Base64

Je comprends ton souci de ne pas dépendre de librairies extérieures. L'éditeur pourrait faire faillite ou abandonner son produit.
Maintenant, évalue les probas que :
1-M$ fasse faiilite
2-M$ cesse de vendre des systèmes d'exploitation
3-M$ supprime crypt32.dll d'une prochaine version de Windows

Dans les deux premiers cas, tu aurai un souci autrement plus grave, puisque plus de powerbuilder.
Quand au troisième, songe au nombre de programmes qui cesseraient de fonctionner.


Celà dit, si les fonctions dont parle eRasorz sont en pur powerscript cela résoud ton problème

Sinon, tu trouveras l'algorithme ici : http://base64.sourceforge.net/
Et il ne te restera plus qu'à traduire


PS : C'est carrément HS, mais sur mon 3° point je vous invite à lire ceci : Why not just block the apps that rely on undocumented behavior ? par Raymond Chen.

Dernière modification par shahin (17-08-2007 09:17:49)


never let people work on more than one thing at once.

Hors ligne

 

#7 31-08-2007 10:00:12

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Base64

shahin a écrit:

pick Ouic avait répondu http://www.rgagnon.com/pbdetails/pb-0258.htmlet Ossarc : "J'ai déjà eu cette page mais je ne sais pas comment m'en servir"

Le principe est pourtant assez simple : Microsoft fourni des services de cryptographie dans Windows.
La dll crypt32.dll permet, entre autres, l'encodage et le décodage en base 64.

Crée un objet non visuel, coche autoinstantiate (facultatif, mais pas plus mal)
Dans "local external function" fait un copier-coller du script [local function declaration] de Real Gagnon

Dans "instance variables" fait un copier-coller du script [instance variables] de Real Gagnon (tiens cette phrase me rappelle quelque chose)

Ensuite tu crée deux fonctions correspondant aux deux scripts suivants. A ce stade tu dois maitriser le copier-coller



eRasorZ : les deux fonctions dont tu parle dans n_winsock  encodent en base64 ?
(peux pas vérifier moi-même, impossible de télécharger le moindre zip)

Pick Ouic avait donné le lien de rgagnon, mais ça ne fonctionne que sous windows Xp ou Vista..
Moi de même, je dois encoder/décoder une chaine de caractères en Base64 sous PB 10.5.1 mais je travaille sous Windows 2000, donc impossible d'utiliser la méthode décrite dans le lien. La library Crypt32.dll de Windows 2000 ne contient pas les 2 fonctions utilisées pour encoder/décoder en Base64 (CryptBinaryToString et CryptStringToBinary)



eRaSorZ a écrit:

Bonjour,

tu as la possibilité d'utiliser des fonctions du SGBDR
* Oracle : UTL_ENCODE.Base64_Encode et UTL_ENCODE.Base64_Decode
* Sybase : BASE64_ENCODE et BASE64_DECODE
...

ou alors celles de l'objet n_winsock : of_decode et of_encode

Idem, les fonctions of_decode et of_encode de l'objet n_winsock reprennent le script du lien de pick ouic, et donc nécessite au moins Windows XP..
Avez-vous une idée d'où récupérer une Dll ou un autre moyen pour pouvoir encore/decode en base64 ?

Merci

Kalini

Dernière modification par Kalini (31-08-2007 10:09:29)

Hors ligne

 

#8 31-08-2007 10:19:21

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Base64

Bonjour, as-tu essayé via SGBDR :

eRaSorZ a écrit:

tu as la possibilité d'utiliser des fonctions du SGBDR
* Oracle : UTL_ENCODE.Base64_Encode et UTL_ENCODE.Base64_Decode
* Sybase : BASE64_ENCODE et BASE64_DECODE
...


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#9 31-08-2007 10:32:19

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Base64

eRaSorZ a écrit:

Bonjour, as-tu essayé via SGBDR :

eRaSorZ a écrit:

tu as la possibilité d'utiliser des fonctions du SGBDR
* Oracle : UTL_ENCODE.Base64_Encode et UTL_ENCODE.Base64_Decode
* Sybase : BASE64_ENCODE et BASE64_DECODE
...

Salut,
Non, je n'ai pas essayé car au moment où je veux Encoder/Decoder la chaine de caractère, je ne suis pas encore connecter à la base oracle.. J'ai besoin d'encoder/décoder avant la chaine de caractère. C'est en rapport avec le mot de passe et la clé de cryptage..

SInon, sur ce lien là, http://pbdj.sys-con.com/read/42522.htm , ils parlent du fichier Pbsecurity.zip à récupérer. Ce fichier contient la PBL securityclient.pbl et pourrait peut-être m'aider..
Savez-vous où je pourrais trouver le PBsecurity.zip à télécharger  ?
Sur ce lien, ils disent que je peux le trouver sur ce même site Powerbuilder Developper Journal, mais pas moyen de trouver ..
Kalini

Dernière modification par Kalini (31-08-2007 10:33:11)

Hors ligne

 

#10 31-08-2007 10:39:45

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Base64

shahin a écrit:

Sinon, tu trouveras l'algorithme ici : http://base64.sourceforge.net/
Et il ne te restera plus qu'à traduire

Je reconnais que traduire l'opérateur C ">>" en powerbuilder c'est pas forcément évident
Quand au "&" (et binaire) c'est pas mieux

AMHA, le plus simple est de modifier le fichier C en question pour en faire une dll.
Je modifierai aussi les fonctions encode et decode pour qu'elles puissent travailler directement sur des chaines de caractères, et non pas sur des descripteurs de fichiers
Il y a plus de tests que de développement.

Si tu as besoin d'un compilateur C gratuit, je te conseille lcc-win32


Kalini a écrit:

Sinon, sur ce lien là, http://pbdj.sys-con.com/read/42522.htm , ils parlent du fichier Pbsecurity.zip à récupérer. Ce fichier contient la PBL securityclient.pbl et pourrait peut-être m'aider...

Attention, c'est un "EJB client" : il faut EAS pour le faire tourner.
Tout est basé la dessus (java pur et dur) : http://iharder.sourceforge.net/current/java/base64/


Kalini a écrit:

mais pas moyen de trouver ..

Toi non plus ? Ouf, je me sens moins seul. Bon, le journal est payant.

Dernière modification par shahin (31-08-2007 10:49:00)


never let people work on more than one thing at once.

Hors ligne

 

#11 31-08-2007 10:59:51

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Base64

shahin a écrit:

shahin a écrit:

Sinon, tu trouveras l'algorithme ici : http://base64.sourceforge.net/
Et il ne te restera plus qu'à traduire

Je reconnais que traduire l'opérateur C ">>" en powerbuilder c'est pas forcément évident
Quand au "&" (et binaire) c'est pas mieux

AMHA, le plus simple est de modifier le fichier C en question pour en faire une dll.
Je modifierai aussi les fonctions encode et decode pour qu'elles puissent travailler directement sur des chaines de caractères, et non pas sur des descripteurs de fichiers
Il y a plus de tests que de développement.

Si tu as besoin d'un compilateur C gratuit, je te conseille lcc-win32


Kalini a écrit:

Sinon, sur ce lien là, http://pbdj.sys-con.com/read/42522.htm , ils parlent du fichier Pbsecurity.zip à récupérer. Ce fichier contient la PBL securityclient.pbl et pourrait peut-être m'aider...

Attention, c'est un "EJB client" : il faut EAS pour le faire tourner.
Tout est basé la dessus (java pur et dur) : http://iharder.sourceforge.net/current/java/base64/


Kalini a écrit:

mais pas moyen de trouver ..

Toi non plus ? Ouf, je me sens moins seul. Bon, le journal est payant.

OK, merci shahin pour cette réponse..
Je vais voir avec l'algo alors..

Hors ligne

 

#12 31-08-2007 11:31:35

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Base64

shahin a écrit:

shahin a écrit:

Sinon, tu trouveras l'algorithme ici : http://base64.sourceforge.net/
Et il ne te restera plus qu'à traduire

Je reconnais que traduire l'opérateur C ">>" en powerbuilder c'est pas forcément évident
Quand au "&" (et binaire) c'est pas mieux

AMHA, le plus simple est de modifier le fichier C en question pour en faire une dll.
Je modifierai aussi les fonctions encode et decode pour qu'elles puissent travailler directement sur des chaines de caractères, et non pas sur des descripteurs de fichiers
Il y a plus de tests que de développement.

Si tu as besoin d'un compilateur C gratuit, je te conseille lcc-win32

C'est clair, je comprends même pas ces fonctions ">>", "<<" et "&" ... J'ai pourtant jeté un oeil ici:
http://www.commentcamarche.net/c/cop.php3

ça ne va pas être simple de transcrire en PB, ça..

Dernière modification par Kalini (31-08-2007 11:43:26)

Hors ligne

 

#13 31-08-2007 12:31:18

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Base64

Bon, j'ai préféré créer la DLL à partir de l'algo C donné + haut.
ça a l'air OK, je retrouve bien les fonctions.
Seulement, effectivement, comme tu le disais, cet algo est fait pour encoder un fichier.
Il faut modifier pour n'encoder qu'une chaine de caractères..

Dernière modification par Kalini (31-08-2007 12:32:34)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22