Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Criptazione sotto c

  1. #1
    Utente di HTML.it L'avatar di EkoZZ
    Registrato dal
    Jul 2003
    Messaggi
    117

    Criptazione sotto c

    Salve a tutti!!!!

    X un progetto a cui sto lavorando, ho necessita' di usare (sotto Linux) una funzione che cripti le pass con l'algo ONE -WAY di Linux;

    Ho trovato, sotto /usr/include/, il file crypt.h, in cui ho trovato la funzione crypt ( char *pass, char *salt); , creo un proggy di prova e provo a compilarlo con gcc, ma mi dice che non trova alcun riferimento a crypt... Eppure ho regolamente incluso il file... Dunque DOVE ho sbagliato???


    Grazie in anticipo...

    EkoZ

    #####
    ps: questo e' il mio primo mess nel forum... spero di nn aver dato una brutta impressione!!!!
    #####
    Yes, Linux is better... It does infinites loops in 5 seconds...
    ~Linus Torvalds~

  2. #2
    Utente di HTML.it L'avatar di zaion
    Registrato dal
    Mar 2002
    Messaggi
    258
    è da circa un anno che non uso più crypt, ma se non ricordo male
    potresti aver sbagliato in uno di questi passi:

    1) non hai incluso l'header
    2) non hai definito una particolare costante all'inizio del programma
    ma le istruzioni per farlo le trovi se fai 'man crypt'
    3) non hai linkato la libreria mentre compili
    gcc -o crypt -lcrypt crypt.c

    prova e fammi sapere.


    PS:scusa se non ricordo bene ma è da tanto che non la uso.
    bye bye

  3. #3
    Utente di HTML.it L'avatar di EkoZZ
    Registrato dal
    Jul 2003
    Messaggi
    117
    Uhm...
    Che cosa vuol dire linkare una libreria??
    Nn e' sufficiente includerla?
    Io ho inserito nel mio codice:

    #include <crypt.h>

    Nn e' sufficiente?
    Yes, Linux is better... It does infinites loops in 5 seconds...
    ~Linus Torvalds~

  4. #4
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    E' la 3).
    Ha dimenticato di linkare la libreria. Le libc5 avevano crypt al loro interno, mentre libc6 implementano quella funzione in libcrypt.

    ChReAn
    -------------------

    Slackware 9.1 powered

  5. #5
    Utente di HTML.it L'avatar di zaion
    Registrato dal
    Mar 2002
    Messaggi
    258
    Originariamente inviato da EkoZZ
    Uhm...
    Che cosa vuol dire linkare una libreria??
    Nn e' sufficiente includerla?
    Io ho inserito nel mio codice:

    #include <crypt.h>

    Nn e' sufficiente?
    no, non è sufficiente.
    spesso basta includere l'header ma a volte bisogna anche linkare,
    cioè mettere nell'eseguibile un pezzo di codice particolare che
    contiene l'implementazione dei metodi dell'header. crede.
    per sapere quali librerie devono essere linkate nei tuoi programmi
    futuri basta che guardi il manuale della libreria.

    nel tuo caso oltre a fare l'include come già fai devi anche linkare
    la libreria durante la compilazione come ti ho detto prima.
    bye bye

  6. #6
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Originariamente inviato da EkoZZ
    Uhm...
    Che cosa vuol dire linkare una libreria??
    Nn e' sufficiente includerla?
    Io ho inserito nel mio codice:

    #include <crypt.h>

    Nn e' sufficiente?
    L'inclusione di un file è equivalente, grossolanamente parlando, a copiare e incollare il contenuto di quel file all'interno del tuo sorgente.
    Solitamente nei file header (*.h) sono contenute soltanto le *dichiarazioni* delle funzioni (i prototipi), mentre le *definizioni* (l'implementazione vera e propria) è contenuta in file *.c, *.cc oppure in librerie dinamiche o statiche.

    Nel tuo caso hai incluso il prototipo e quindi il compilatore sa che esiste la funzione, ma in fase di linking dà errore perchè non riesce a capire *come* deve essere implementata. A questo scopo devi includere il linking alla libcrypt.

    Tutto chiaro?
    ChReAn
    -------------------

    Slackware 9.1 powered

  7. #7
    Utente di HTML.it L'avatar di zaion
    Registrato dal
    Mar 2002
    Messaggi
    258
    esatto
    bye bye

  8. #8
    Utente di HTML.it L'avatar di EkoZZ
    Registrato dal
    Jul 2003
    Messaggi
    117
    Oky, grazie 10000 ad entrambi, con questo ho risolto i 3/4 dei miei problemi con il gcc :quipy:
    Yes, Linux is better... It does infinites loops in 5 seconds...
    ~Linus Torvalds~

  9. #9
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Originariamente inviato da zaion
    esatto
    Dov'è l'emoticon della stretta di mano? :adhone:
    ChReAn
    -------------------

    Slackware 9.1 powered

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.