Olá boa tarde,
estou com a necessidade de criptografar uma string usando uma chave publica RSA, existe como fazer isso em advpl?
Att.
Olá boa tarde,
estou com a necessidade de criptografar uma string usando uma chave publica RSA, existe como fazer isso em advpl?
Att.
Boa Tarde Vinicius,
Da uma olhada no conteúdo a respeito, no blog do Júlio Wittwer , tem um artigo com bastante coisa a respeito:
https://siga0984.wordpress.com/2019/09/06/criptografia-em-advpl-parte-14/
https://siga0984.wordpress.com/2019/09/07/criptografia-em-advpl-parte-15/
Verificando a assinatura
Primeiro, precisamos da chave pública para a verificação. Ela pode ser obtida a partir da chave privada usando o seguinte comando Openssl:
openssl rsa -in note-juliow-ssd.key -pubout > note-juliow-ssd-public.key
E, para verificar a assinatura usando a OpenSSL, usamos a imagem, a chave publica e a assinatura a ser verificada:
openssl dgst -sha1 -verify note-juliow-ssd-public.key -signature padlock.sign padlock.png
Agora vamos ver como fazer isso em AdvPL:
User Function MyVery()
Local cImageFile := "\imagens\padlock.png"
Local cStrImage := ''
Local cSignInfo := "\imagens\padlock.sign"
Local cHash := ''
Local cSignature := ""
Local nH, nTam
Local cError
// Lê o conteudo da imagem do disco
nH := fopen(cImageFile)
nTam := fSeek(nH,0,2)
fSeek(nh,0)
fRead(nH,cStrImage,nTam)
fclose(nH)
// Calcula o SHA1 da imagem
cHash := SHA1( cStrImage , 1 )
// Le a assinatura do no disco
nH := fopen(cSignInfo)
nTam := fSeek(nH,0,2)
fSeek(nh,0)
fRead(nH,@cSignature,nTam)
fclose(nH)
// Verifica se a assinatura bate com o HASH do arquivo
// usando a minha chave publica
lOk := PrivVeryRSA( "\siga0984\note-juliow-ssd-public.key", cHash, 2, cSignature, @cError )
If lOk
MsgInfo("Assinatura OK" )
Else
MsgInfo("Falha de verificação de assinatura",cError )
Endif
Return
Talvez esta parte te auxilie em algo:
https://siga0984.wordpress.com/2019/09/01/criptografia-em-advpl-parte-13/
Atenciosamente,
nada relacionado lá
— VINICIUS GATI 13 de Jul de 2020Oi vi que editou, mas realmente o que eu preciso é usar a chave publica rsa para criptografar e não assinar, é lougura mas é isso aí que o projeto está exigindo hehe
— VINICIUS GATI 14 de Jul de 2020Entendo, mas é meio estranho porque conceitualmente,se você utilizar a chave publica, geraria uma insegurança, afinal, qualquer um com acesso a chave publica criptografando, pode se passar pelo seu sistema e agir de forma maliciosa.
— Douglas Bichir 14 de Jul de 2020se a pessoa tiver acesso a chave sim, é que sao 2 camadas, assim é estranho é um projeto internacional de uma marca famosa, mas um arquivo é criptografado e esse criptografia gera informações da criptografia, aí essa informação é criptografada usando essa chave publica, enfim é estranho mas é isso aí.
— VINICIUS GATI 14 de Jul de 2020
Conseguiu resolver o problema? Estou com a mesma necessidade, preciso criptografar uma mensagem usando RSA-1024.
— Everton Alves 18 de Sep de 2021Consegui resolver aqui instalando o programa OpenSSL e utilizando a função WaitRunSrv para executar comandos do lado do servidor.
— Everton Alves 22 de Sep de 2021