Kezdőoldal » Számítástechnika » Programozás » C nyelv: e pár soros kód...

C nyelv: e pár soros kód működőképessé tétele?

Figyelt kérdés

Nagyon szeretném, ha e pár soros kód működne.

Egy, bármilyen megadott string sha512 kimenetét szeretném megkapni, de nem hexadecimálisan, hanem decimálisan, egy tömbben. Az alábbi kód ezt valósítaná meg, csak sajnos bizonyos hibák miatt nem működik.

[link]

A fejlécben jó helyen van a "sha.h"? Alapból nekem nem találta és forráskód-telepítéssel kellett megoldani, esetleg más, beépített hash lib-et kellene használni?

Nagyon szépen köszönöm ha valaki tud segíteni.



jún. 21. 14:59
 1/5 anonim ***** válasza:

Nem néztem meg a beépített sha függvény működését, de ide gyanakszom:

unsigned char hash - ez szerintem sztringként adja vissza a hasht, hexa formában, mert az a nemzetközi szokás.

Ebből egyszerűen tudnál egyetlen decimálist csinálni: fscanf-fel beolvasod egy 64 bites (long long int) típusba.

Ezt meg már ki tudod íratni akár egyben, akár számjegyenként.

Egyben könnyű, akkor %d, számjegyenként meg: osztod 10 hatvánnyal, és veszed a 10-zel történő maradékát, az egy számjegy.

jún. 21. 15:09
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Nagyon köszönöm a válaszodat.

Elég kezdő vagyok, tudsz ebben segíteni, miképpen nézne ki az általad említett módosítás programkódban?

jún. 21. 15:20
 3/5 anonim ***** válasza:
54%

Teljesen jól működik a kódod, mi a gond vele? Nem tudod lefordítani?


Milyen rendszeresen fordítasz és mivel?

Én OpenSuse alatt feltelepítettem a libopenssl-devel csomagot, és így fordítottam:

gcc test.c -lssl -lcrypto -o test


Utána futtattam, és visszaadta a "pelda" hash-ét integerenként.

jún. 21. 15:57
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:

"Teljesen jól működik a kódod, mi a gond vele? Nem tudod lefordítani?"

Sajnos nem, hibaüzenetet ír ki.


Raspberry Pi-re portolt legújabb Debian rendszer, GCC amivel szeretném lefordítani.

Én nem találok libopenssl-devel csomagot, kézzel töltöttem le az openssl forráskódját és így próbálom.

"-I" kapcsolóval adtam meg neki a sha.h include fájlt is, biztos ez a baj.

A hibajelzésben a sorszámok azért térhetnek el a feltöltött kódtól, mert a feltöltött változatban a kommentek és üres sorok nincsenek benne. // a sor elején, szöveges kommenteket nem tartalmazza, egyébként nincs eltérés.


hashexample.c: In function 'get_sha512_as_integers':

hashexample.c:6:22: error: 'SHA512_DIGEST_LENGTH' undeclared (first use in this function)

6 | unsigned char hash[SHA512_DIGEST_LENGTH];

| ^~~~~~~~~~~~~~~~~~~~

hashexample.c:6:22: note: each undeclared identifier is reported only once for each function it appears in

hashexample.c:9:3: warning: implicit declaration of function 'SHA512' [-Wimplicit-function-declaration]

9 | SHA512((unsigned char *)string, strlen(string), hash);

| ^~~~~~

hashexample.c: In function 'main':

hashexample.c:25:16: error: 'SHA512_DIGEST_LENGTH' undeclared (first use in this function)

25 | int integers[SHA512_DIGEST_LENGTH];

| ^~~~~~~~~~~~~~~~~~~~

jún. 21. 16:25
 5/5 A kérdező kommentje:
Nagyon szépen köszönöm, megtaláltam a megfelelő csomagot és működik a kód. :)
jún. 21. 16:46

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!