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á 1526 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á 1526 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...