hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.16. 15:49



Jelenlévő felhasználók

Jelenleg 379 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 377 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [19 hozzászólás ]  Oldal12Következő
Szerző Üzenet
 Hozzászólás témája: SHA1
HozzászólásElküldve:2015.07.13. 19:09 
Offline
Fórum Moderátor
Avatar

Csatlakozott:2014.05.01. 13:18
Hozzászólások:628
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 105 alkalommal
Tiszteletem!

Páran már lehet ismeritek a SHA1 adatvédelmet, kódolást. Én találtam egy include-ot, de valamiért nem működik. Ezen azt értem, hogy magában a konvertáláskor már az inc-ban hibát jelez. Nem gondoltam, hogy már eredetileg is rosszul van felrakva. Megnézné valaki?

Kiki láttalak az allied-es kommentnél, a pozitív visszajelzésedből azt szűrtem le, hogy ez jól megvan csinálva. Lehetséges lenne, hogy utólag valaki beleszerkesztett?

INC:
SMA Forráskód: [ Mindet kijelol ]
  1. #if defined _sha1_included
  2. #endinput
  3. #endif
  4.  
  5. #define _sha1_included
  6.  
  7. enum SHA1Context {
  8. Message_Digest[5],
  9. Length_Low,
  10. Length_High,
  11. Message_Block[64],
  12. Message_Block_Index,
  13. Computed,
  14. Corrupted
  15. }
  16.  
  17. new const ___const_SHA1K[] = {0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6};
  18.  
  19. /**
  20.  * @brief Produces a 160-bit message digest for a given data stream
  21.  *
  22.  * @param str Input string to calculate the hash from.
  23.  * @param output Output buffer. If bHex is true, output must be at least 40+1 of length, if not it has to be 20+1.
  24.  * @param bHex If true, return the hash as hexadecimal number, else return a raw binary format.
  25.  * @return True, if hash was calculated, false otherwise
  26.  */
  27. stock bool:SHA1String(const String:str[], String:output[], bool:bHex=true)
  28. {
  29. output[0] = '^\0';
  30.  
  31. new Context[SHA1Context];
  32. SHA1Reset(Context);
  33.  
  34. new len = 1024;
  35. new msg[len];
  36.  
  37. for(new i=0;i<len;i++)
  38. {
  39. msg[i] = str[i];
  40. }
  41.  
  42. SHA1Input(Context, msg, len);
  43.  
  44. if(!SHA1Result(Context))
  45. {
  46. //LogError("SHA1ERROR-- could not compute message digest");
  47. return false;
  48. }
  49. else
  50. {
  51. SHA1Finalize(Context, output, bHex);
  52. }
  53.  
  54. return true;
  55. }
  56.  
  57. /**
  58.  * @brief Produces a 160-bit message digest for a given file
  59.  *
  60.  * @param hFile File handle returned by OpenFile(path, "r");
  61.  * @param output Output buffer. If bHex is true, output must be at least 40+1 of length, if not it has to be 20+1.
  62.  * @param bHex If true, return the hash as hexadecimal number, else return a raw binary format.
  63.  * @return True, if hash was calculated, false otherwise
  64.  */
  65. stock bool:SHA1File(Handle:hFile, String:output[], bool:bHex=true)
  66. {
  67. output[0] = '\0';
  68.  
  69. new Context[SHA1Context];
  70. SHA1Reset(Context);
  71.  
  72. new input[1];
  73. while(!IsEndOfFile(hFile))
  74. {
  75. if(ReadFileCell(hFile, input[0], 1) != 1)
  76. continue;
  77. SHA1Input(Context, input, 1);
  78. }
  79.  
  80. if(!SHA1Result(Context))
  81. {
  82. //LogError("SHA1ERROR-- could not compute message digest");
  83. return false;
  84. }
  85. else
  86. {
  87. SHA1Finalize(Context, output, bHex);
  88. }
  89. return true;
  90. }
  91.  
  92. SHA1Reset(Context[SHA1Context])
  93. {
  94. Context[Length_Low] = 0;
  95. Context[Length_High] = 0;
  96.  
  97. Context[Message_Digest][0] = 0x67452301;
  98. Context[Message_Digest][1] = 0xEFCDAB89;
  99. Context[Message_Digest][2] = 0x98BADCFE;
  100. Context[Message_Digest][3] = 0x10325476;
  101. Context[Message_Digest][4] = 0xC3D2E1F0;
  102.  
  103. Context[Message_Block_Index] = 0;
  104. }
  105.  
  106. // if bHex is true, output must be at least 40+1 of length, if not it has to be 20+1.
  107. SHA1Finalize(Context[SHA1Context], String:output[], bool:bHex)
  108. {
  109. if(bHex)
  110. {
  111. for(new i=0;i<5;i++)
  112. Format(output, 41, "%s%x", output, Context[Message_Digest][i]);
  113. }
  114. else
  115. {
  116. for(new i=0,j=0;j<20;i++,j+=4)
  117. {
  118. output[j] = (Context[Message_Digest][i] >> 24) & 0xff;
  119. output[j+1] = (Context[Message_Digest][i] >> 16) & 0xff;
  120. output[j+2] = (Context[Message_Digest][i] >> 8) & 0xff;
  121. output[j+3] = Context[Message_Digest][i] & 0xff;
  122. }
  123. }
  124. }
  125.  
  126. SHA1Input(Context[SHA1Context], const message_array[], length)
  127. {
  128. if(!length)
  129. return;
  130.  
  131. if(Context[Computed] || Context[Corrupted])
  132. {
  133. Context[Corrupted] = 1;
  134. return;
  135. }
  136.  
  137. new i = 0;
  138. while(length-- && !Context[Corrupted])
  139. {
  140. Context[Message_Block][Context[Message_Block_Index]++] = (message_array[i] & 0xFF);
  141.  
  142. Context[Length_Low] += 8;
  143. /* Force it to 32 bits */
  144. Context[Length_Low] &= 0xFFFFFFFF;
  145. if(Context[Length_Low] == 0)
  146. {
  147. Context[Length_High]++;
  148. /* Force it to 32 bits */
  149. Context[Length_High] &= 0xFFFFFFFF;
  150. if(Context[Length_High] == 0)
  151. {
  152. /* Message is too long */
  153. Context[Corrupted] = 1;
  154. }
  155. }
  156.  
  157. if(Context[Message_Block_Index] == 64)
  158. {
  159. SHA1ProcessMessageBlock(Context);
  160. }
  161.  
  162. i++;
  163. }
  164. }
  165.  
  166. SHA1Result(Context[SHA1Context])
  167. {
  168. if(Context[Corrupted])
  169. return 0;
  170.  
  171. if(!Context[Computed])
  172. {
  173. SHA1PadMessage(Context);
  174. Context[Computed] = 1;
  175. }
  176.  
  177. return 1;
  178. }
  179.  
  180. SHA1ProcessMessageBlock(Context[SHA1Context])
  181. {
  182. new t;
  183. new temp;
  184. new W[80];
  185. new A, B, C, D, E;
  186.  
  187. for(t=0;t<16;t++)
  188. {
  189. W[t] = (Context[Message_Block][t*4]) << 24;
  190. W[t] |= (Context[Message_Block][t*4+1]) << 16;
  191. W[t] |= (Context[Message_Block][t*4+2]) << 8;
  192. W[t] |= (Context[Message_Block][t*4+3]);
  193. }
  194.  
  195. for(t=16;t<80;t++)
  196. {
  197. W[t] = SHA1CircularShift(1,W[t-3]^W[t-8]^W[t-14]^W[t-16]);
  198. }
  199.  
  200. A = Context[Message_Digest][0];
  201. B = Context[Message_Digest][1];
  202. C = Context[Message_Digest][2];
  203. D = Context[Message_Digest][3];
  204. E = Context[Message_Digest][4];
  205. for(t=0;t<20;t++)
  206. {
  207. temp = SHA1CircularShift(5,A) + ((B&C)|((~B)&D)) + E + W[t] + ___const_SHA1K[0];
  208. temp &= 0xFFFFFFFF;
  209. E = D;
  210. D = C;
  211. C = SHA1CircularShift(30,B);
  212. B = A;
  213. A = temp;
  214. }
  215.  
  216. for(t=20;t<40;t++)
  217. {
  218. temp = SHA1CircularShift(5,A) + (B^C^D) + E + W[t] + ___const_SHA1K[1];
  219. temp &= 0xFFFFFFFF;
  220. E = D;
  221. D = C;
  222. C = SHA1CircularShift(30,B);
  223. B = A;
  224. A = temp;
  225. }
  226.  
  227. for(t=40;t<60;t++)
  228. {
  229. temp = SHA1CircularShift(5,A) + ((B&C)|(B&D)|(C&D)) + E + W[t] + ___const_SHA1K[2];
  230. temp &= 0xFFFFFFFF;
  231. E = D;
  232. D = C;
  233. C = SHA1CircularShift(30,B);
  234. B = A;
  235. A = temp;
  236. }
  237.  
  238. for(t=60;t<80;t++)
  239. {
  240. temp = SHA1CircularShift(5,A) + (B^C^D) + E + W[t] + ___const_SHA1K[3];
  241. temp &= 0xFFFFFFFF;
  242. E = D;
  243. D = C;
  244. C = SHA1CircularShift(30,B);
  245. B = A;
  246. A = temp;
  247. }
  248.  
  249. Context[Message_Digest][0] = (Context[Message_Digest][0]+A) & 0xFFFFFFFF;
  250. Context[Message_Digest][1] = (Context[Message_Digest][1]+B) & 0xFFFFFFFF;
  251. Context[Message_Digest][2] = (Context[Message_Digest][2]+C) & 0xFFFFFFFF;
  252. Context[Message_Digest][3] = (Context[Message_Digest][3]+D) & 0xFFFFFFFF;
  253. Context[Message_Digest][4] = (Context[Message_Digest][4]+E) & 0xFFFFFFFF;
  254.  
  255. Context[Message_Block_Index] = 0;
  256. }
  257.  
  258. stock SHA1PadMessage(Context[SHA1Context])
  259. {
  260. /*
  261.   * Check to see if the current message block is too small to hold
  262.   * the initial padding bits and length. If so, we will pad the
  263.   * block, process it, and then continue padding into a second
  264.   * block.
  265.   */
  266. if(Context[Message_Block_Index] > 55)
  267. {
  268. Context[Message_Block][Context[Message_Block_Index]++] = 0x80;
  269. while(Context[Message_Block_Index] < 64)
  270. {
  271. Context[Message_Block][Context[Message_Block_Index]++] = 0;
  272. }
  273.  
  274. SHA1ProcessMessageBlock(Context);
  275.  
  276. while(Context[Message_Block_Index] < 56)
  277. {
  278. Context[Message_Block][Context[Message_Block_Index]++] = 0;
  279. }
  280. }
  281. else
  282. {
  283. Context[Message_Block][Context[Message_Block_Index]++] = 0x80;
  284. while(Context[Message_Block_Index] < 56)
  285. {
  286. Context[Message_Block][Context[Message_Block_Index]++] = 0;
  287. }
  288. }
  289.  
  290. Context[Message_Block][56] = (Context[Length_High]>>24)&0xFF;
  291. Context[Message_Block][57] = (Context[Length_High]>>16)&0xFF;
  292. Context[Message_Block][58] = (Context[Length_High]>>8)&0xFF;
  293. Context[Message_Block][59] = (Context[Length_High])&0xFF;
  294. Context[Message_Block][60] = (Context[Length_Low]>>24)&0xFF;
  295. Context[Message_Block][61] = (Context[Length_Low]>>16)&0xFF;
  296. Context[Message_Block][62] = (Context[Length_Low]>>8)&0xFF;
  297. Context[Message_Block][63] = (Context[Length_Low])&0xFF;
  298.  
  299. SHA1ProcessMessageBlock(Context);
  300. }
  301.  
  302. stock SHA1CircularShift(bits,word)
  303. {
  304. return (word<<bits) | (word>>>(32-bits));
  305. }


LOG:
Kód:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

D:\Program Files\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\include\sha1.inc(29) : error 027: invalid character constant
D:\Program Files\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\include\sha1.inc(29) : error 027: invalid character constant
D:\Program Files\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\include\sha1.inc(29) : error 029: invalid expression, assumed zero
D:\Program Files\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\include\sha1.inc(29) : fatal error 107: too many error messages on one line

Compilation aborted.
4 Errors.


A segítséget köszönöm! :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: SHA1
HozzászólásElküldve:2015.07.13. 19:57 
Offline
Tiszteletbeli
Avatar

Csatlakozott:2014.09.08. 22:21
Hozzászólások:3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Hát én azt mondom egyenlőre hanyagold még ezt :D

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: SHA1
HozzászólásElküldve:2015.07.14. 07:03 
Offline
Fórum Moderátor
Avatar

Csatlakozott:2014.05.01. 13:18
Hozzászólások:628
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 105 alkalommal
Hanyagolnám, de van egy php ma ezt használja és össze kötném az sql-en keresztül egy szeróval, próbáltam a webet átírni md5-re, de az még annyira sem ment...


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: SHA1
HozzászólásElküldve:2015.07.14. 07:09 
Offline
Tiszteletbeli
Avatar

Csatlakozott:2014.09.08. 22:21
Hozzászólások:3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
29.sor
SMX Forráskód: [ Mindet kijelol ]
  1. output[0] = '^\0';


Átír:
SMA Forráskód: [ Mindet kijelol ]
  1. output[0] = '\0';

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: SHA1
HozzászólásElküldve:2015.07.14. 10:39 
Offline
Őskövület
Avatar

Csatlakozott:2012.02.27. 09:42
Hozzászólások:2588
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 418 alkalommal
Ha megnézed az eredeti témát https://forums.alliedmods.net/showthread.php?t=172593 sourcemodnál van ami nem véletlen. SM pluginnal tökéletesen működik.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: SHA1
HozzászólásElküldve:2015.07.14. 18:32 
Offline
Fórum Moderátor
Avatar

Csatlakozott:2014.05.01. 13:18
Hozzászólások:628
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 105 alkalommal
Ajajajajaj, ezt kicsit elnéztem. És olyanról nem tudtok ami nekem megfelelő lenne? :|


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: SHA1
HozzászólásElküldve:2015.07.14. 21:26 
Offline
Őskövület
Avatar

Csatlakozott:2012.02.27. 09:42
Hozzászólások:2588
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 418 alkalommal
2 megoldás van.

1. https://forums.alliedmods.net/showthread.php?t=157479 (nem tuti h jó ez volt az első találat) ez ha minden igaz lekódolja a beírt jelszót md5 be így ha php ban átalakítod az sql be mentett jelszót md5 re működni fog.
2. nem használsz kódolást.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: SHA1
HozzászólásElküldve:2015.07.15. 12:57 
Offline
Fórum Moderátor
Avatar

Csatlakozott:2014.05.01. 13:18
Hozzászólások:628
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 105 alkalommal
A kódolás az mindegy lenne, ha nem lenne is de, php-hoz annyira nem értek ezért folyamatosan hibás volt maga a weblap szerkesztett php-ja, mert nem tudtam normálisan átalakítani úgy, hogy jó legyen.

Egy nyílt forrással rendelkező portal rendszert használok, amiben külön kellene átírni az elfejetett jelszó php-ját, a regisztráció php-ját és a bejelentkezés php-ját. Az elfelejtett jelszavas sikerült, a bejelentkezése rosszul sült el, mert megnehezítette a dolgomat az, hogy úgy van kiépítve, hogy a régi más kódolású jelszavakat sha1-be alakítja, a regisztrációhoz tartozó php-ban meg egyszerűen nem is találtam sha1-et.

Van itt olyan, aki már tanulmányozta a SMF portalt?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: SHA1
HozzászólásElküldve:2015.07.15. 15:08 
Offline
Developer
Avatar

Csatlakozott:2011.06.01. 21:11
Hozzászólások:7966
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
Bár, nem írtad mit szeretnél. Tehát így elnézve, oldalon, és játékba is lehetne regisztrálni, s az elkészült regisztrációkkal, játékba, és weben is belehetne lépni?

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: SHA1
HozzászólásElküldve:2015.07.16. 07:15 
Offline
Fórum Moderátor
Avatar

Csatlakozott:2014.05.01. 13:18
Hozzászólások:628
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 105 alkalommal
Pontosan ezt szeretném elérni. Csak ugye valahogy nem tudom egyeztetni a jelszavakat. :|


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [19 hozzászólás ]  Oldal12Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 33 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole