Concatenar bytes .. ?

classic Classic list List threaded Threaded
3 messages Options
gui
Reply | Threaded
Open this post in threaded view
|

Concatenar bytes .. ?

gui
Estou comparando o resultado de dois scripts um python e um lua, e o resultado do código lua não está igual ao do python para uma operação. (valor c).  

# LUA CODE
md5 = require("md5")
a = 'abc'
b = md5.sumhexa(a)
c = md5.sumhexa(b .. a)
print (b)
print (c)

#PYTHON CODE
import hashlib
def md5(entrada: bytes) -> bytes:
    d = hashlib.md5()
    d.update(entrada)
    return d.digest()
a = str.encode('abc')
b = md5(a)
c = md5(b +  a)
print (b.hex())
print (c.hex())


LUA OUTPUT
B = 900150983cd24fb0d6963f7d28e17f72  (python & lua mesmo valor) OK
C = 5dca6c035c021c1156715b157496c03f (valor diferente?) 


PYTHON OUTPUT 
B = 900150983cd24fb0d6963f7d28e17f72 (python & lua mesmo valor) OK
C = ea0b31e1087a22bc5394a6636e6ed34b

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/1eb87fff-2791-4592-adcc-c017bbc0bd41o%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: Concatenar bytes .. ?

Tomás Guisasola
Olá gui

Eu não conheço Python, mas creio que as operações + e .. não são
exatamente iguais, pelo menos neste caso.  Sugiro imprimir o resultado
de b..a (em Lua) e de b+a (em Python) para ver se são iguais.  Talvez
o problema esteja ali...

Abraço,
Tomás


Em sex., 1 de jan. de 2021 às 15:15, gui <[hidden email]> escreveu:

>
> Estou comparando o resultado de dois scripts um python e um lua, e o resultado do código lua não está igual ao do python para uma operação. (valor c).
>
> # LUA CODE
> md5 = require("md5")
> a = 'abc'
> b = md5.sumhexa(a)
> c = md5.sumhexa(b .. a)
> print (b)
> print (c)
>
> #PYTHON CODE
> import hashlib
> def md5(entrada: bytes) -> bytes:
>     d = hashlib.md5()
>     d.update(entrada)
>     return d.digest()
> a = str.encode('abc')
> b = md5(a)
> c = md5(b +  a)
> print (b.hex())
> print (c.hex())
>
>
> LUA OUTPUT
> B = 900150983cd24fb0d6963f7d28e17f72  (python & lua mesmo valor) OK
> C = 5dca6c035c021c1156715b157496c03f (valor diferente?)
>
>
> PYTHON OUTPUT
> B = 900150983cd24fb0d6963f7d28e17f72 (python & lua mesmo valor) OK
> C = ea0b31e1087a22bc5394a6636e6ed34b
>
> --
> Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
> Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/1eb87fff-2791-4592-adcc-c017bbc0bd41o%40googlegroups.com.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/lua-br/CAJarVn0j2rjXmVmpCjrtsC2hodo8kDA2FV8fhssKRCX5%3DFhBtA%40mail.gmail.com.
Reply | Threaded
Open this post in threaded view
|

Re: Concatenar bytes .. ?

Luiz Henrique de Figueiredo
In reply to this post by gui
> b = md5.sumhexa(a)
> b = md5(a)

Essas duas linhas não calculam a mesma coisa. A primeira cacula o
digest em forma hexadecimal; a segunda em forma binária.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/lua-br/CAD55k3ojRM7i%3D%2BNT9EdVr6TL9QCej2cDLqE8tS0auQ1juQ048A%40mail.gmail.com.