C nyelv: e pár soros kód működőképessé tétele?
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.
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.




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.
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?




válasza: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.
"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];
| ^~~~~~~~~~~~~~~~~~~~
Kapcsolódó kérdések:
let szaboviki = new szemely("Szabó","Viktória",30,""); szaboviki.setHobby("futás"); document.getElementById("teljesnev").innerHTML = "Teljes neve: " + szaboviki.teljesnev(); document.getElementById("eletkor").innerHTML ="Életkora: "...
Nemrég kezdtem el linuxot/shellscriptet használni, és sehogyse tudom, átírni a kódomat függvénybe. (Az adatokat kéne paraméterként bekérni read-ek helyett)Az eredeti kódom ami működik:#!/bin/bashecho "Add meg a telefonszámod: "read TELSZAMecho "Mit...
Adott egy nagy dolog, aminek eléréséhez az embernek sok-sok kisebb, egyenként 10 szintes dolgot kell teljesítenie(amelyhez források szükségesek, illetve a nagy dologhoz is forrás szükséges). A kalkulátor célja az lenne, hogy bekérdezi a felhasználótól, hogy melyik kis...
Remélem világos a kérdésem, problémám. Találtam Én ugyan a startbootstrap.com oldalon egy "clean blog" mintaoldalt, de számomra ez sem blog oldalnak tűnik, hanem a bejövő üzeneteket esetleg utólag szerveren keresztül megjeleníteni, blabla Én lényegében egy oldalba...
Egy javascript websocketből és egy php fájlból áll az egész. Nem túl bonyolult, jól működik, hogyha cmd-ből (windows-om van) futtatom a server.php fájlt. Ha viszont felrakom szerverre, és ott a putty-val futtatom a server.php fájlt, nem működik. Connection timed-out-ot...
Nem tudom megérteni, hogy, hogy működik a következő programm: a = 3 b = 3 c = a == b print(c) Tudom, hogy mit ír ki, csak azt nem, hogy miért. Nagyon megköszönném, ha valaki elmegyarázná nekem lépésről lépésre.
Minden jog fenntartva © 2026, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!




