Pular para o conteúdo

Arquivos e hash

Comprovantes e documentos ficam no armazenamento de arquivos do Iunto, em três lugares:

Caminho O que é
plans/{plano}/notas/{nota}/… Anexos e comprovante de uma nota.
plans/{plano}/acordo/… Documentos do acordo do plano (só o criador anexa).
settlements/{de}_{para}_{instante}/… Comprovante de um acerto.

O nome de cada arquivo segue o padrão {milissegundos}_{sha256}.{extensão}: o instante do envio, um sublinhado, o SHA-256 do conteúdo (64 caracteres hexadecimais) e a extensão (jpg, png ou pdf). O SHA-256 é a impressão digital do arquivo: um número calculado a partir dos bytes, que muda por completo se um único byte mudar.

A regra do armazenamento só aceita o envio se o nome tem esse formato, o tipo é imagem JPEG, PNG ou PDF e o tamanho não passa de 20 MB. O hash do nome é declarado por quem envia: a regra confere o formato, não o conteúdo. A conferência do conteúdo contra o nome é feita depois, na geração do relatório (G-09).

O envio é somente de criação: a regra recusa sobrescrever um caminho que já existe, alterar ou apagar (G-08). No app, remover um anexo e incluir outro grava um arquivo novo; o anterior continua guardado. Como o arquivo não muda, um hash no nome que não bate com o conteúdo é sinal de que o nome foi declarado errado no envio; a troca do arquivo por um usuário a regra não permite.

O armazenamento sabe gerar um link de download que carrega um código de acesso público, válido sem login. Quem tivesse o link continuaria abrindo o arquivo mesmo depois de sair do plano. O Iunto nunca guarda esse link (G-03): guarda só o caminho, e cada abertura passa de novo pela verificação de acesso. Quem sai do plano perde o acesso.

Lê quem é membro do plano; no comprovante de acerto, as duas partes do acerto (G-03). Arquivos enviados antes de 2026-09-28 não têm o hash no nome: a leitura continua permitida, mas a integridade não é conferível (G-09).

Com o arquivo original e um relatório de prestação de contas em mãos:

  1. Confirme que o relatório é autêntico em iunto.app/verificar.
  2. Na seção “Comprovantes e documentos” do relatório, ache o arquivo e copie os 64 caracteres entre o _ e o ponto final do nome impresso no relatório.
  3. Calcule o SHA-256 do arquivo recebido:
    • Windows (PowerShell): Get-FileHash -Algorithm SHA256 arquivo.pdf
    • Linux: sha256sum arquivo.pdf
    • macOS: shasum -a 256 arquivo.pdf
  4. Compare os dois valores, ignorando maiúsculas e minúsculas. São iguais somente se o arquivo tem exatamente os mesmos bytes do que foi enviado ao Iunto.

Compare com o nome impresso no relatório autenticado, não com o nome do arquivo recebido. Quem entrega pode renomear um arquivo alterado com o hash dele próprio; o relatório autenticado fixa o hash que o Iunto guardou. Assim a conferência não depende de quem entregou o arquivo nem do caminho que ele fez.

Renomear o arquivo não muda o hash; abrir e salvar de novo, reexportar ou tirar uma captura de tela muda. Por isso a conferência vale para o arquivo original, e não para uma cópia convertida.

Um membro do plano, qualquer das partes, abre o anexo no app e usa “Compartilhar original”. O arquivo sai com os mesmos bytes e o nome guardados ({millis}_{sha256}.{ext}). O perito confere contra o nome impresso no relatório autenticado, pelo passo a passo da seção anterior.

Uma captura de tela do anexo não serve, nem o envio como foto por aplicativos que comprimem imagens: ambos mudam o hash. O arquivo deve ser enviado como arquivo/documento. Quando nenhum membro entrega o arquivo, o operador continua sendo o caminho, mediante requisição judicial (o procedimento está em preparação). Hoje o servidor também recalcula o hash ao gerar o relatório, e o resultado aparece como “Íntegro” ou “Divergente”.

Situação O que o relatório fez O que se pode concluir
Íntegro Baixou o arquivo, calculou o SHA-256 e achou o mesmo do nome O arquivo tem os mesmos bytes do que foi enviado. Nada diz sobre ser verdadeiro o que ele mostra.
Divergente O hash calculado difere do hash do nome O nome declarou, no envio, um hash que não corresponde ao conteúdo. O arquivo não serve como prova sem perícia sobre o arquivo e o registro do envio.
Sem hash registrado O nome não tem hash Arquivo anterior a 2026-09-28. A integridade não é conferível pelo relatório.
Não encontrado Não localizou o arquivo no armazenamento Nada se conclui sobre o conteúdo. Pedir ao operador a verificação do caminho indicado.