Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

programar em linguagem C o script bash shell através das libs libcrypto.a e libssl.a

get cid

rcid1=`hwinf -quiet | grep serial | head -n 1 | awk -F":" '{ print $2 }' | sed 's/-//g' |  sed 's/"//g'| tr -d '[:blank:]'`

rcid2=`blkid | head -n 1 | awk -F"=" '{ print $2 }' | sed 's/-//g' |  sed 's/"//g' | tr -d '[:blank:]'`

rcid3=`ip addr show | grep link | grep -v loop | head -n 1 | sed 's/"//g'| awk '{ print $2 }' | tr -d '[:blank:]'`


if [ ${#rcid1} -gt 5 ]; then 

    cid=`echo $rcid1 | sed -e 's/-//g'| openssl md5 | awk -F"=" '{print $2 }'`

else
    if [ ${#rcid2} -gt 5 ]; then

        cid=`echo $rcid2 | sed -e 's/-//g'| openssl md5 | awk -F"=" '{print $2 }'`

    else
    
        cid=`echo $rcid3 | sed -e 's/-//g'| openssl md5 | awk -F"=" '{print $2 }'`
    fi
fi
2 respostas

Oii, Alberto, tudo bem?

Se eu não estou errada, você quer fazer algo semelhante, mas usando a linguagem C e as bibliotecas libcrypto.a e libssl.a. Certo?

A linguagem C é um pouco mais complexa do que o bash para essas tarefas, mas é totalmente possível. Primeiro, você precisará incluir as bibliotecas no seu código C. No caso da libcrypto.a e libssl.a, você pode fazer isso com as seguintes linhas no início do seu código:

#include <openssl/md5.h>
#include <openssl/evp.h>

Em seguida, você precisa reescrever as funções do seu script bash em C. Por exemplo, a parte do seu script que usa o comando hwinf -quiet | grep serial | head -n 1 | awk -F":" '{ print $2 }' | sed 's/-//g' | sed 's/"//g'| tr -d '[:blank:]' pode ser reescrita em C usando funções para executar comandos do sistema, ler a saída desses comandos e processar strings.

E, por fim, você usará as funções da biblioteca openssl para gerar o hash MD5. Vou deixar abaixo um exemplo:

unsigned char result[MD5_DIGEST_LENGTH];
char string[] = "hello world";

MD5((unsigned char*)&string, strlen(string), result);

for(int i = 0; i < MD5_DIGEST_LENGTH; i++)
    printf("%02x", result[i]);
printf("\n");

Se outra dúvida surgir, estamos aqui.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.
solução!

Isabel, implementei conforme proposto e funcionou! Muito obrigado pela passagem de conhecimento!