PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → fcrypte avec NodJS
fcrypte avec NodJS
Iniciado por HDev, 25,oct. 2019 12:11 - 3 respuestas
Miembro registrado
28 mensajes
Publicado el 25,octubre 2019 - 12:11
Bonjour,

Je désire envoyé un fichier crypté à un serveur sous Node.
Autant le chiffrement des chaînes de caractères passe très bien, autant je n'arrive pas à déchiffrer les fichiers avec Node.

Note : Peu importe l'aglo chiffrement utilisé par fcrypte (crypteRapide ou crypteSécurisé), que le fichier soit encodé ou pas.

Pour avancer je suis tombé sur un fil qui dit que le mot de passe est en fait un hash MD5 (pour NodeJS)
https://stackoverflow.com/questions/8647737/decrypting-blowfish-ecb-with-nodejs-crypto-vs-phps-mcrypt

bufPassword = ChaîneVersUTF8("password")
bufHashPassword = HashChaîne(HA_MD5_128, bufPassword) // Password hashé en MD5

fCrypte(sFullNameSource, sFullNameCrypted, bufHashPassword, crypteRapide, encodeBASE64)

mais rien n'y fait

Quelqu'un aurait-il réussi à envoyer des fichiers chiffrés sous Node ?

Merci par avance pour votre aide.

Config : WinDev 24 + NodeJS 12.13.0
Miembro registrado
2.682 mensajes
Publicado el 25,octubre 2019 - 15:40
Il ne faut pas utiliser fcrypte() mais CrypteStandard()

--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
28 mensajes
Publicado el 25,octubre 2019 - 17:36
bonjour Philippe,

Philippe SB a écrit :
Il ne faut pas utiliser fcrypte() mais CrypteStandard()

--
Cordialement,

Philippe SAINT-BERTIN


Le problème est que CrypteStandard utilise un buffer. j'ai observé des plantages tant de l'exécutable que du débogueur de WinDev avec la fonction fChargeBuffer (sans même une levée d'exception !), d'où l'utilisation de fCrypte.

En fait je n'arrive pas à retrouver les bon réglages de NodeJS pour décrypter.

let algorithm = 'bf-cfb';   

let password = 'password';

let infilepath = path.join(__dirname, '..\\test_data\\fcrypte\\WD-NodeJS_blowfish_none_clear')

var decipher = crypto.createDecipher(algorithm, password);

var infileStream = fs.createReadStream(infilepath);

var outfileStream = fs.createWriteStream('.\\test_data\\fcrypte\\WD-NodeJS_blowfish_none_clear_raw_deciphered');

infileStream.pipe(decipher).pipe(outfileStream);

outfileStream.on('finish', function() {
        console.log('Decrypted Blowfish file written to disk!');
});


Le fichier déchiffré de sortie est généré mais ne correspond pas à l'original !
Miembro registrado
2.682 mensajes
Publicado el 26,octubre 2019 - 09:30
Tu ne trouveras jamais les bons réglages pour NodeJS car on n'a aucune info sur le type de cryptage utilisé par Windev dans fCrypte() rien ne dit que c'est un algorithme standard. On sait juste qu'il est sur 128 bits. De plus, il faut que ton fichier soit codé en UTF8.

Tu dis que tu constates des plantages de l’exécutable. Quelle est la taille du fichier que tu tentes de charger en mémoire ? Qu'entends-tu par plantage ? Ton exe est en 32 ou 64 bits ? Windev est en 32 ou 64 bits ?

--
Cordialement,

Philippe SAINT-BERTIN
Mensaje modificado, 26,octubre 2019 - 09:31