Ford.B Posted March 24, 2017 at 07:07 PM Report Share #603358 Posted March 24, 2017 at 07:07 PM Segue o código... import os, random from Crypto.Cipher import AES import glob def encrypt(filename): chunksize = 64 * 1024 output_file = "(encrypted)" + filename filesize = str(os.path.getsize(filename)).zfill(16) #key = "{: <32}".format(filename).encode("utf-8") IV = "" for i in range(16): IV += chr(random.randint(0, 0xFF)) encryptor = AES.new(AES.MODE_CBC, IV) with open(filename, "rb") as infile: with open(output_file, "wb") as outfile: outfile.write(filesize) outfile.write(IV) while True: chunk = infile.read(chunksize) if len(chunk) == 0: break elif len(chunk) % 16 != 0: chunk += " " * (16 - (len(chunk) % 16)) outfile.write(encryptor.encrypt(chunk)) os.chdir('/home/usuario/Documentos/Teste') for f in glob.glob('*'): encrypt(f) O error que aparece: TypeError: argument 1 must be string or read-only buffer, not int Link to comment Share on other sites More sharing options...
pwseo Posted April 2, 2017 at 11:51 AM Report Share #603473 Posted April 2, 2017 at 11:51 AM Podes dar mais algum contexto ao erro? Seguramente que o interpretador está a dar-te informação mais detalhada, nomeadamente o número da linha em que ocorre o erro ou a função que está a ser invocada. Não podes esperar que todos instalemos o PyCrypto para tentarmos reproduzir o teu código nas nossas máquinas. O erro parece simples: estás a utilizar um número inteiro num local onde se espera uma string ou buffer só de leitura. Fico a aguardar mais detalhes teus. Link to comment Share on other sites More sharing options...
Ford.B Posted April 17, 2017 at 06:55 PM Author Report Share #603672 Posted April 17, 2017 at 06:55 PM pwseo, muito obrigado mas resolvi de outra forma, com outros módulos. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now