Ir para conteúdo
  • Cadastre-se

dev botao

ACBR Monitor - Comando para criptografar a senha do Certificado


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 1487 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Caros

Gostaria de saber se no MonitorACBR existe algum comando para cryptografar a senha do certificado digital, para o uso na NFCe.
Eu sei que, se configurar manualmente a senha no config do Monitor, ele cryptografa e salva criptografado no .INI e é assim que ter que ficar pra funcionar.
Como eu nao compilo o ACBRMonitor, nao consigo olhar a função que faz isso, pra copiar pro meu software.  Sei que por motivos óbvios, vcs nao podem "colar" a formula aqui.

Teria alguma maneira, de vcs me ajudarem a gerar isso no C# caso o ACBRMonitor nao tenha uma função pra isso?

Desde já agradeço a todos.

Link para o comentário
Compartilhar em outros sites

  • Fundadores
  • Solution

Por ser código aberto, na verdade não é um segredo...

Essa criptografia apenas serve para evitar usuários finais bisbilhoteiros....

Veja esse tópico:

 

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Daniel

Obrigado pela resposta

Quebrei a cabeça aqui e nao consegui fazer no Vb.net / C#.
O meu calculo nao bate com o resultado do ACBR.
A chave padrao que o Acbr usa pra fazer o XOR com o senha do certificado é o parametro "HashSenha=" do ACBRMonitor.ini ?

Alguém consegue converter esse código em VB.net ?  Eu pago pelo serviço.

Desde ja agradeço a todos.

Link para o comentário
Compartilhar em outros sites

  • Fundadores
22 minutos atrás, Anderson2106 disse:

A chave padrao que o Acbr usa pra fazer o XOR com o senha do certificado é o parametro "HashSenha=" do ACBRMonitor.ini ?

a Chave de Criptografia usada.. é o CRC16 da Senha informada... com 8 caracteres e zeros a esquerda

fsHashSenha := IntToStrZero(StringCrc16(wSenha), 8)

 

https://docs.microsoft.com/pt-br/dotnet/visual-basic/language-reference/operators/xor-operator

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Daniel

Desculpe insistir no assunto, parece obvio pra todos, mas to apanhando aqui e não consigo descobrir onde estou errando.

Eu tenho um certificado cujo a senha é = "povo"
O ACBRMonitor criptograda e salva como = 04361D45

Pelo que eu entendi do cálculo, passo a passo seria :

1) hash CRC16 da string "povo" com zeros a esquerda

CRC16 de 0000povo = 723a

2) Fazer um XOR byte a byte da string "povo" com a CRC16 = 723a

PosLetra = ord(Result) xor ord(StrChave[pos])

Após o Comando "ord" caracter por caracter temos:

p = 112            7 = 55
o = 111            2 = 50
v = 118            3 = 51
o = 111            a = 97


Se eu fizer um XOR do 112 com qualquer um deles (55,50,51 ou 97), e depois der um CHR, 
eu nao encontro o "04" da senha "04361D45".

Nao sei se estou errando no entendimento da combinação, no CRC16, ou em tudo.

Se puder me ajudar eu agradeço.

Link para o comentário
Compartilhar em outros sites

  • Fundadores
2 horas atrás, Anderson2106 disse:

Nao sei se estou errando no entendimento da combinação, no CRC16, ou em tudo.

Acho que problema é no CRC16... calcule o CRC16 da String original, e adicione Zeros a Esquerda, no resultado final, em Decimal...

XOR

Operador lógico no qual a resposta da operação é verdade (1) quando as variáveis assumirem valores diferentes entre si.
https://pt.wikipedia.org/wiki/Operador_lógico

     112 = ‭01110000‬
xor   55 = ‭00110111‬
-------------------
      71 = ‭01000111‬

 

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Daniel,  retomei agora esse processo.

Eu refiz a parte que calcula o CRC16, mas nao sei se está calculando correto.
Voce conseguiria me calcular algumas strings, com a sua função do CRC16, só pra eu validar com a minha?

Exemplos

String            |  CRC16
povo              | ________
12345678     | ________ 
ABCDEF        | ________
abcdef           | ________
Daniel@acbr | ________

Desde ja te agradeço.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Daniel

Obrigado por enviar o projeto, com ele consigo validar as minhas funções.
O que tá pegando agora é  entendimento do processo mesmo.

Veja se a minha sequencia está correta. 

Eu tenho um certificado cujo a senha é = "povo"
O ACBRMonitor criptograda e salva como = 04361D45

Para chegar no mesmo resultado do ACBrMonitor entao eu tenho que fazer :

1) hash CRC16 da senha "povo" com zeros a esquerda = 00037196

2) Fazer um XOR byte a byte da palavra"povo" com "00037196" que é o CRC16 encontrado no passo anterior.

Pelo que eu entendi, o seu projeto em Lazarus fez o passo 2 e gerou "#64,#95,#70,#92"

Entao desse ponto como eu chego no resultado do ACBRMonitor = 04361D45   ?

Desde ja te agradeço a atenção

CalculoCRC16_povo.png

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Lendo melhor os fontes... notei que foi modificada a forma que a senha é gravada...

na versão Atual, a Senha "povo" gera o HashSenha=44695B1902667942

é utilizada uma constante, para o XOR...  Atualizei o projeto, com o novo calculo....

 

ACBrCrypt.zip

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Daniel,
Quando vc falou que tinha uma constante ai começou a fazer sentido o calculo pra mim.
Eu baixei o ACBRMonitor mais atual, e cadastrei o certificado manualmente na interface, mas ele continua calculando pelo Hash anterior, que o resultado da senha "povo" = 04361D45

Veja em anexo as imagens do cadastro, que realizei agora.

 

AcbrMonitor_ini.png

config_ACBr.png

CalculoCRC16_povo.png

Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1487 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.