1. Jorge Escobar
  2. PowerBuilder
  3. Friday, 17 August 2018 21:58 PM UTC

Ayer escribí mi pregunta, pero, al parecer, hay problemas en la publicación.

 

La versión 2017 R3 trae un componente CrypterObject que tiene, entre otros métodos, MD5 y SHA. El problema es que el resultado que devuelve estos métodos no es el esperado.


Por ejemplo, el resumen MD5 de la palabra "Appeon" es 19da6ca7729cf1bae6a9c7ef1e776ae0 pero el resumen que devuelve el CrypterObject de PowerBuilder  es Úl§rœñºæ©Çïwjà por tanto, no se puede comparar el MD5 generado en el origen (que puede ser con otra aplicación) y el MD5 generado en PowerBuilder; esto con la finalidad de evaluar la integridad de archivos que se transfieren.

 

String 		ls_result

CrypterObject lnv_CrypterObject
lnv_CrypterObject = Create CrypterObject

Blob lblb_data
Blob lblb_MD5

lblb_data = Blob("Appeon",EncodingAnsi!)

lblb_MD5 = lnv_CrypterObject.MD5(lblb_data)

ls_result		= String(lblb_MD5,EncodingAnsi!)

 

Esto mismo pasa con SHA. También he probado con otra codificación EncodingUTF8.

 

¿Alguna idea de cómo obtener en una cadena el valor MD5?

 

Saludos

armando herrera @Appeon Accepted Answer Pending Moderation
  1. Wednesday, 24 June 2020 22:36 PM UTC
  2. PowerBuilder
  3. # 1

Hola Jorge,

Prueba el siguiente codigo:

//Variables
Blob lblb_data
Blob lblb_md5
String ls_data

// clean multi text
mle_test.text = ""

//Set blob data
lblb_data = Blob("Appeon", EncodingANSI!)
// Create CrypterObject
CrypterObject lnv_CrypterObject
lnv_CrypterObject = Create CrypterObject
// Encrypt with MD5
lblb_md5 = lnv_CrypterObject.MD5(lblb_data)

//Create CoderObject
Coderobject lnv_code
Lnv_code = create coderobject

//Encode the MD5 blob data to be hex data and output as a string
Ls_data = lnv_code.hexencode(lblb_md5)
mle_test.text = Ls_data

 

Saludos!

-------------------

Reference:  https://docs.appeon.com/pb2019r2/powerscript_reference/ch10s500.html

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.