- Digitális Állampolgárság Program
- Asszociációs játék. :)
- Ingyen kellene, de tegnapra
- Nagy "hülyétkapokazapróktól" topik
- TOTP generátor PHP-ra
- Fűzzük össze a szavakat :)
- Szólánc.
- Keringető szivattyú vezérlése: még okosabb fűtés
- Anya, tudsz segíteni a matekban?....Nem érek rá kisfiam, majd segít a ChatGPT...
- Az elfelejtett kiberfegyver
Új hozzászólás Aktív témák
-
Inhouse
őstag
válasz cinemazealot #8 üzenetére
A bin2hex() ötlet jónak tűnik, majd kipróbálom. Köszi!
Nyilvánvaló, hogy egy ilyet kiírni szövegként teljességgel értelmetlen volna, mert az csak egy bájtsor...
Nem is az értékekre voltam kíváncsi, összehasonlítási alap lett volna az enyémmel, ezen hasalt itt el a dolog. Idáig sem volt olyan egyszerű, nekem a PHP 0 tudásommal, de utána néztem, és megkerestem a megfelelőjét HB-ban. UNIX time-ot nem találtam, azt pl. megírtam.
Igen, este idáig jutottam, utána írtam ide....ha igény van rá, este leírom egy hsz-ben az egész program működését sorról-sorra.
Van, van! Köszi!
Főleg, mert ezután jön az a rész, amit megint nem igazán értek még...néztem az operátorokat és a ^ jel sem volt köztük, illetve ez a többsoros ord()-os rész is ködös, de ebből itt van a Skori megoldása is, hátha...
Mindenesetre már sokat segítettél és köszönöm az elkövetkezőket is.
Rám is vár még egy Base32 függvény írása, mert az nincs HB-ban, nem találtam. Base64 van beépített, meg írtam egy sajátot is tanulásképpen.Üdv Inhouse
-
ekkold
őstag
válasz cinemazealot #4 üzenetére
Csak javaslat, de szerintem építsd be a base32 dekódoló függvényt a php fájlodba, így nem kellene külső 3. fél által gyártott kódot meghívnod.
http://skory.gylcomp.hu/ http://www.skory.z-net.hu/ https://skori.hu/ https://skori.spacetechnology.net/
-
válasz cinemazealot #8 üzenetére
"Mert ha jól sejtem, tegnap 18:23:30-kor futtattad."
Bocs, 18:23:30 és 18:23:59 között.
-
Még egyszer: a hex2bin() kimenete nem egy hétköznapi (olvasható) string, hanem egy (jelen pillanatban 8 karakter, azaz 8 bájt hosszú) 64 bites integer string-ként tárolva. Pusztán azért, mert így kényelmesebb vele dolgozni. Ne próbáld megfejteni "00|00|00|00|03|73|f2|a7" bájtsorozat (string) szöveges jelentését, mert nincs neki olyan. Ez nem más, mint az 57930407 értékű egész szám big-endian ábrázolása, ami a 1737912210/30 matematikai művelet eredményeként született. Mert ha jól sejtem, tegnap 18:23:30-kor futtattad.
Online szerintem ne akarj PHP-t futtatni, inkább telepíts fel egyet magadnak, futtasd a programot parancssorból és itt-ott állítsd meg, hogy "kiechózd" egyik-másik változót. Viszont kiechózni sem lehet mindent, pl. a bináris tartalom parancssorban is szarul mutatna. Ahhoz előbb érdemes beletenni a bináris tartalmat egy bin2hex()-be, csak hogy hexadecimálisan olvasható legyen.
Még egy gondolat a stringekhez: a PHP-ban minden bináris tartalom (pl. hang, kép, videó, Excel tábla, Word vagy PDF dokumentum) betölthető stringbe. Nyilvánvaló, hogy egy ilyet kiírni szövegként teljességgel értelmetlen volna, mert az csak egy bájtsor, aminek elemei bőven túlmutathatnak az ASCII kódtáblán.
Szerk.: Most melózom, de ha igény van rá, este leírom egy hsz-ben az egész program működését sorról-sorra.
[ Szerkesztve ]
-
Inhouse
őstag
válasz cinemazealot #6 üzenetére
Szia!
Köszi, hogy válaszoltál. Láttam ezeket, amiket linkeltél, de a te gyakorlati megvalósításod nagyon megtetszett és soronként szerettem volna megérteni és átültetni. De valószínűleg ez mégsem ilyen egyszerű, meghaladja az én képességeim.
Engem az zavar a hex2bin()-ben, hogy nem értem az eredményét, miért csak (látszólag?) azt a 2 értéket alakítja át?
00|00|00|00|03|73|f2|a7 -> s�
Vagy az echo nem ír ki olyat, ami nem olvasható string? De akkor miért nincs 0xA7, alias § nálam, ž netes környezetben? Csak az angol ABC és számok?
A másik problémám, hogy megnéztem a hash részt, a HB-s változat hexaban ugyanazt az eredményt adja, a RAW opcióval meg csak talán, az értelmesen olvasható ASCII része stimmel, a többit egyelőre nem tudom...lehet, hogy csak megjelenítési gond, ugyanúgy megenné és kiköpné az eredményt... az online PHP futtatós oldal ebben nem barátom.[ Szerkesztve ]
Üdv Inhouse
-
Szia Inhouse!
A hex2bin() pontosan azt teszi, amit a neve sugall, illetve amit a manual ír róla: egy bináris stringet hoz létre. Ennek azonban nem feltétele, hogy a string ember által olvasható is legyen. Ha megfigyeled, az eredménye csupán egy 64 bites (8 bájtos) "big-endian" integer, aminek alapja a 30 másodpercenkénti számláló, kiegészítve balról nulla karakterekkel (!). Mivel az alapja integer, amúgy sem lenne string formában olvasható, de nem is ez a cél, hanem hogy bekerüljön a h() függvénybe, ahol a jobbról nulla bájtokkal (!) kiegészített és aztán jól "meg-scramble-zött" kulcshoz hozzáfűzve ráeresztjük az SHA1-et... aztán mégegyszer egy másik pad bájttal.
Olvasd el a linkelt szabványt... illetve az abban hivatkozott RFC 4226 és RFC 2104 szabványokat, utóbbiban lesz jobban kifejtve ez a fenti eljárás.
-
Inhouse
őstag
Szia cinemazealot !
Engem is foglalkoztatott, hogy megcsinálom. Nem vagyok PHP programozó, a legfejlettebb nyelv a Harbour, amiben dolgozok, ez egy Clippert magában foglaló modernizált C alapú nyelv.
Gondoltam elegendő lesz, vannak fejlett szövegfeldolgozó függvények, számrendszer konvertálás, sha1, stb...
Néztem a kódod, elakadtam a hex2bin() függvénynél. Azt látom, hogy ez nem az aminek a neve mutatná, hanem a hexa adatból ASCII karakterek lesznek. De a netes példákban nem kezdődik 9 nullával, mint itt. Van egy ilyen függvény HB-ban, HB_HexToStr(), de az fogja és végigmegy, és minden pár byte-ból próbál karaktert gyártani. Ezért az őeredménye a 0x00-k miatt üresekkel kezdődik, aztán a 0x03 egy szivecske 1250-es kódkészletnél, stb...
Példa:
PHP:
000000000373f2a7 -> s�
HB:
000000000373f2a7 -> ♥sň§
Weben próbáltam https://onecompiler.com/php/-el. Miért csak a 0x73(s) és az 0xF2(ň) van látszólag benne. Gondolom a 0xF2 azért más, mert erre nincs felkészítve a webes felület megjelenítésben, vagy más a kódlap...[ Szerkesztve ]
Üdv Inhouse
-
Szuper, örülök.
#2 ekkold
Olvastam a megoldásodról, irigykedtem is, hogy megelőztél. De azon túl, hogy egy bagatell problémán akadtam fenn, én kizárólag a TOTP magjára fókuszáltam. Aztán ha valaki olyan összkomfortos megoldást akar, mint a Tiéd, az legfeljebb körülbástyázza az áhított védelmi és kényelmi funkciókkal.#3 Doky586
Nem beszélve arról a pár ezer forintos kínai switch-ről, amit a minap tettem a hálózatra. -
"Az igazsághoz persze hozzátartozik, hogy ez a program is behúz egy 3. fél által gyártott kódot, ami"...
A teljes bizonyossághoz még ellenőrizni kellene a
- windows forráskódját
- a böngésző forráskódját
- a hálókártya driver forráskódját
- minden mást is ami futhat...
Hogy teljes biztonságban legyünk. -
ekkold
őstag
Hasonlót gyártottam én is, persze jelszavas védelemmel kiegészítve.
Több kulcsot kezel, és egy táblázatban jeleníti meg, valahogy így:
Hogy ne kelljen külső dekódert használni azt is beemeltem a php kódba:
$map = array(
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', // 7
'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', // 15
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', // 23
'Y', 'Z', '2', '3', '4', '5', '6', '7', // 31
'=' // padding char
);
$flippedMap = array(
'A'=>'0', 'B'=>'1', 'C'=>'2', 'D'=>'3', 'E'=>'4', 'F'=>'5', 'G'=>'6', 'H'=>'7',
'I'=>'8', 'J'=>'9', 'K'=>'10', 'L'=>'11', 'M'=>'12', 'N'=>'13', 'O'=>'14', 'P'=>'15',
'Q'=>'16', 'R'=>'17', 'S'=>'18', 'T'=>'19', 'U'=>'20', 'V'=>'21', 'W'=>'22', 'X'=>'23',
'Y'=>'24', 'Z'=>'25', '2'=>'26', '3'=>'27', '4'=>'28', '5'=>'29', '6'=>'30', '7'=>'31'
);
function decode($input) {
global $map;
global $flippedMap;
if(empty($input)) return;
$paddingCharCount = substr_count($input, $map[32]);
$allowedValues = array(6,4,3,1,0);
if(!in_array($paddingCharCount, $allowedValues)) return false;
for($i=0; $i<4; $i++){
if($paddingCharCount == $allowedValues[$i] &&
substr($input, -($allowedValues[$i])) != str_repeat($map[32], $allowedValues[$i])) return false;
}
$input = str_replace('=','', $input);
$input = str_split($input);
$binaryString = "";
for($i=0; $i < count($input); $i = $i+8) {
$x = "";
if(!in_array($input[$i], $map)) return false;
for($j=0; $j < 8; $j++) {
$x .= str_pad(base_convert($flippedMap[@$input[$i + $j]], 10, 2), 5, '0', STR_PAD_LEFT);
}
$eightBits = str_split($x, 8);
for($z = 0; $z < count($eightBits); $z++) {
$binaryString .= ( ($y = chr(base_convert($eightBits[$z], 2, 10))) || ord($y) == 48 ) ? $y:"";
}
}
return $binaryString;
}//fv
/*
function encode($input, $padding = true) {
global $map;
global $flippedMap;
if(empty($input)) return "";
$input = str_split($input);
$binaryString = "";
for($i = 0; $i < count($input); $i++) {
$binaryString .= str_pad(base_convert(ord($input[$i]), 10, 2), 8, '0', STR_PAD_LEFT);
}
$fiveBitBinaryArray = str_split($binaryString, 5);
$base32 = "";
$i=0;
while($i < count($fiveBitBinaryArray)) {
$base32 .= $map[base_convert(str_pad($fiveBitBinaryArray[$i], 5,'0'), 2, 10)];
$i++;
}
if($padding && ($x = strlen($binaryString) % 40) != 0) {
if($x == 8) $base32 .= str_repeat($map[32], 6);
else if($x == 16) $base32 .= str_repeat($map[32], 4);
else if($x == 24) $base32 .= str_repeat($map[32], 3);
else if($x == 32) $base32 .= $map[32];
}
return $base32;
}
*/[ Szerkesztve ]
http://skory.gylcomp.hu/ http://www.skory.z-net.hu/ https://skori.hu/ https://skori.spacetechnology.net/
-
PSti
tag
Tökéletesen működik, nagyon köszönöm!
[ Szerkesztve ]
Új hozzászólás Aktív témák
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- One otthoni szolgáltatások (TV, internet, telefon)
- Parfüm topik
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Okosóra és okoskiegészítő topik
- PlayStation 5
- 2,2 méteres magasságból tesztelték az S25 Ultra kerámiaüvegét
- Crypto Trade
- Milyen videókártyát?
- Genshin Impact (PC, PS4, Android, iOS)
- További aktív témák...
- Samsung Q80T QLED 65" Eladó
- Lenovo Yoga Pro 7 14ARP8 (83AU0056HV)
- HP EliteBook 850 G8 Fémházas "Kis Gamer" Laptop 15,6" -65% i7-1185G7 16/512 Iris Xe FHD HUN
- Samsung Galaxy S23 Ultra 256GB Gyönyörű állapotban, üvegfóliával, tokkal FOXPOST
- HP EliteBook 850 G8 Fémházas "Kis Gamer" Laptop 15,6" -65% i7-1185G7 16/512 Iris Xe FHD HUN
Állásajánlatok
Cég: Marketing Budget
Város: Budapest