Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Hex problem & Cryptowanie
Forum PHP.pl > Forum > PHP
Pooligans
Witam, jestem programista C++, i mam male problemy z moja aplikaja w php. Pierwszy problem dotyczy cryptowania/dekryptowania. Mam nastepujacy kod w c++:

  1. <?php
  2. VOID EncryptMemory( BYTE* pSource, BYTE* pDestination, DWORD dwSize, int iKey )
  3. {
  4. for(unsigned int Z = 0; Z < dwSize; Z++)
  5. {
  6. *(pDestination+Z) = (int)( (*(pSource+Z) + (iKey+4)) ^ iKey );
  7. }
  8. }
  9.  
  10. VOID DecryptMemory( BYTE* pSource, BYTE* pDestination, DWORD dwSize, int iKey )
  11. {
  12. for(unsigned int Z = 0; Z < dwSize; Z++)
  13. {
  14. *(pDestination+Z) = (int)( (*(pSource+Z) ^ iKey) - (iKey + 4));
  15. }
  16. }
  17. ?>


Jest to prosty kod, pobierajacy bajt po bajcie znak, i szyfrujacy go w nastepujacy sposob - (Bajt + (Key+4)) ^ Key - oraz deszyfrujacy - (Bajt ^ Key) + (Key + 4). Potrzebuje cos identycznego w php, probowalem ale niestety mi nie wyszlo. Bede bardzo wdzieczny za pomoc.

Nastepny problem jest taki, ze posiadam zalozmy dwa pola, w ktorych uzytkownik podaje liczbe w hexie (duze liczby). Nastepnie za pomoca skryptu zamieniam hex na dec, robie odp dzialanie matemtyczne (dodawanie lub mnozenie lub cos innego). Dostaje wynik w DEC, i nie wiem jak to wyswietlnic w hexie. Uzywam nastepujacego kodu:

  1. <?php
  2. $Info1_HEX = hexdec($Info1);
  3. $Info2_HEX = hexdec($Info2);
  4.  
  5. //INFO1 * INFO2
  6. $HardwareKey = bcmul($Info1_HEX, $Info2_HEX);
  7. ?>


W jaki sposob moge skonwertowac. lub wyswietlic liczbe w hexie (0x00000000)?

Dziekuje i pozdrawiam.
Michal
NuLL
Tzn ty chcesz zamienic integera na hexa ? smile.gif
Sokal
Po prostu, jak chcesz wyświetlić to, np.:
  1. <?php
  2. echo 0x00000010;
  3. ?>

Z dodawaniem, np. tak samo, nic nie trzeba konwertować ;-)
Pooligans
Postaram sie napisac jasniej, mam dwa pola gdzie user wpisuje liczbe w hexie.

1)Jako przyklad 0x7845AB1 i 0xDEADBEEF
2) Do tej pory zamnienialem te liczby na dec, bo php nie potrafi mnozyc hexow (?)
3) Wynik otrzymuje w DEC
4) Po przekonwertowaniu w kalkulatorze z dec na hex, powinno sie otrzymac 0x77D093F

Potzrebuje jakis sposob, aby zamienic DEC na HEX w php, zeby nie trzeba bylo wykonywac punktu 4.

Pozdrawiam
Sokal
PHP potrafi mnożyć hexy ;-)
Kicok
Cytat
mam dwa pola gdzie user wpisuje liczbe w hexie.

2) Do tej pory zamnienialem te liczby na dec, bo php nie potrafi mnozyc hexow (?)


Jeśli te dane pobierałeś z formularza, to to nie były żadne liczby, tylko zwykły tekst, np.: "ABC992", który przy konwersji na integer zamieniany był na 0.
Próbowałeś bawić się funkcjami, które podał revyag?
Pooligans
Witam a wiec zaznajomilem sie z problemem, i teraz mam nastepujacy problem

w inpucie ktos podaje dane:

1 - 45eaff18
2 - 1ee312c2
3 - 2c0e299b

skrypt wykonuje:
1+2*3

$Dec_Info1 = HexDec($Information1);
$Dec_Info2 = HexDec($Information2);
$Dec_Info3 = HexDec($Information3);
$Hex_ID = dechex($Dec_Info1 + $Dec_Info2 * $Dec_Info3);

Wynik tej operacji w php to B6046C80, a w rzeczywistosci powinien byc 0xE wiekszy czyli B6046C8E.

Ma ktos pomysl jak sie tego pozbyc? Czy sa to za duze numery dla php?
Pooligans
Moze jednak ktos sie skusi i bedzie znal odpowiedz? Dziekuje
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.