Poslao: 29 Mar 2015 12:18
|
offline
- savan2
- Građanin
- Pridružio: 15 Jul 2009
- Poruke: 150
|
Pozz, moilm nekog ko bi mogao da mi pomogne da konvertujem sledecu klasu u php, stvarno ne znam nista sto se tice net framework, ako je moguce hvala vam puno! Ovo je klasa koju treba da portujem u php:
using System;
using System.Security.Cryptography;
using System.Text;
namespace A
{
public sealed class STXSTX
{
private const string SOH = "dCjYWWu2jnGRfO/am3qRi3UTi885YHf/t+xcwpvVbRYv0duHLTt52D0hRPhsQ9SlJptZccS04qlFzdzb3PoL+w==";
private const int STX = 18;
private static HMACSHA1 ETX = new HMACSHA1(Convert.FromBase64String("dCjYWWu2jnGRfO/am3qRi3UTi885YHf/t+xcwpvVbRYv0duHLTt52D0hRPhsQ9SlJptZccS04qlFzdzb3PoL+w=="));
public static string EOT(string SOH)
{
byte[] bytes = Encoding.GetEncoding(1252).GetBytes(SOH);
byte[] sourceArray = STXSTX.ETX.ComputeHash(bytes);
byte[] array = new byte[18];
Array.Copy(sourceArray, 0, array, 0, array.Length);
return Convert.ToBase64String(array).Replace('/', '-');
}
}
}
string text = string.Concat(new string[]
{
"userdoe1",
"/2/script/search/TAC8=",
"35168006",
"/CDA=",
"1280-7866"
});
string text2 = A.STXSTX.EOT(text);
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(string.Concat(new string[]
{
"http://software.sonymobile.com/ns/",
text,
"_",
text2,
".ser.gz"
}));
Znaci finalni url bi trebao da bude: http://software.sonymobile.com/ns/usdoe1/2/script/search/TAC8=35168006/CDA=1280-7866_Mytr4p2cPugz8kWVBwCRUJz9.ser.gz
Stvarno ne znam kako ovo da dobijem u php
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 29 Mar 2015 12:46
|
offline
- Pridružio: 18 Feb 2007
- Poruke: 31
- Gde živiš: Republika Srpska,Banja Luka
|
Ne znam ni ja net framework ,ali pokusacu da prevedem neke stvari koje su ocigledne ,pa ti sam pokusaj ukomponovati:
Ovo na pocetku su po meni interface:
using System;
using System.Security.Cryptography;
using System.Text;
pa njih trebas pomocu komande implements da inkorporiras u ovu dole klasu.
Ovo namespace A hmm razmisljam sta bi moglo biti ,ali mi izgleda kao da taj namespace A extends samo ovu dole klasu.
Sljedece:
public sealed class STXSTX bih preveo kao : final public class STXSTX
Koliko vidim net framework za svaki string pojasnjava koji je tip istog:
Pa bi
private const string SOH = "dCjYWWu2jnGRfO/am3qRi3UTi885YHf/t+xcwpvVbRYv0duHLTt52D0hRPhsQ9SlJptZccS04qlFzdzb3PoL+w==";
bilo :
const SOH = "dCjYWWu2jnGRfO/am3qRi3UTi885YHf/t+xcwpvVbRYv0duHLTt52D0hRPhsQ9SlJptZccS04qlFzdzb3PoL+w==";
i sljedeca vrijednost gore je takodje konstanta.Onda ide private static HMACSHA1 ETX ,ovo je staticka varijabla ali ovdje u net framework objasnjava da je to tip varijable koji ima neku enkripciju (HMACSHA1 ) u PHP-u nije potrebno pojasnjavati kakav je tip. u PHP-u bi bilo :
private static $ETX = //posto je ovo varijabla,a ne konstanta.
Zatim public static string EOT(string SOH) je ocigledno koliko vidim neka metoda (u PHP-u bi bilo):
public static function EOT(self::SOH){
Ovaj dio :
byte[] bytes = Encoding.GetEncoding(1252).GetBytes(SOH);
byte[] sourceArray = STXSTX.ETX.ComputeHash(bytes);
byte[] array = new byte[18];
Bih preveo:
byte[bytes] = Encoding.GetEncoding(1252).GetBytes(SOH);//treba vidjeti cime se puni ovaj red
byte[sourceArray ] = STXSTX.ETX.ComputeHash(bytes); //....
Array.Copy(sourceArray, 0, array, 0, array.Length); //mi izxgleda nesto kao array_merge()
}
Dakle pitanje je da li se ova klasa moze prevesti u PHP,ako su u ovu klasu inkorporirani interface koji bi se takodje trebali onda napraviti.Eto na prvu,palim sad.
|
|
|
|
Poslao: 29 Mar 2015 12:57
|
offline
- savan2
- Građanin
- Pridružio: 15 Jul 2009
- Poruke: 150
|
Ej hvala ti na pokusaju da pomognes drago mi je da cujem to, mada i dalje ne kontam nista. Pokusao sam naci neki tool koji konvertuje net u java ili net u php ali nisam nasao nista, tj nasao sam nesto online ali mi izbacuje neku gresku odmah na pocetku
Ovo ne razumem string text2 = A.STXSTX.EOT(text); Znaci text2 treba da dobijem a to je onaj hash Mytr4p2cPugz8kWVBwCRUJz9
namespace A mi stvarno deluje budalasto da ne mogu nikako da provalim sta treba da se uradi ali sigurno extends ovo dole po meni
|
|
|
|
Poslao: 29 Mar 2015 13:05
|
offline
- Pridružio: 18 Feb 2007
- Poruke: 31
- Gde živiš: Republika Srpska,Banja Luka
|
Sad uvidjam da net framework ima nesto od semantike javascripta,ovo string text2 = A.STXSTX.EOT(text); je koliko vidim : $text2 = A(ime ove prve valjda klase ovo namespace sta li je),pa onda STXSTX ime te klase ispod,pa EOT ime metode,u PHP bi to islo puno jednostavnije $text2 = self::EOT(text); jer je ovo EOT staticka metoda.Dakle moguce je da je ova klasa neprevodiva u PHP sve dok ne budemo imali ovo na pocetku
using System;
using System.Security.Cryptography;
using System.Text;
sto je vjerovatno interface koji bi se implements u samu klasu.
p.s. kako stavis ovdje na forumu da ti ovo bude napisano kao kod?
|
|
|
|
Poslao: 29 Mar 2015 14:47
|
offline
- savan2
- Građanin
- Pridružio: 15 Jul 2009
- Poruke: 150
|
Napisano: 29 Mar 2015 13:21
Ovako nekako:
$bytes = 'usdoe1/2/script/search/TAC8=35168006/CDA=1280-7866';
$sourceArray = hash_hmac('sha1', $bytes, base64_decode("dCjYWWu2jnGRfO/am3qRi3UTi885YHf/t+xcwpvVbRYv0duHLTt52D0hRPhsQ9SlJptZccS04qlFzdzb3PoL+w=="));
$array = substr($sourceArray, 0, 36);
$array = str_replace("/", "-", $array);
echo base64_encode($array);
Ali ne daje mi isti onaj hash: Mytr4p2cPugz8kWVBwCRUJz9
Dopuna: 29 Mar 2015 14:47
Uspeo sam jedva nekako \0/
Resenje:
if (!function_exists('hex2bin')) {
function hex2bin($str) {
$sbin = "";
$len = strlen($str);
for ($i=0; $i<$len; $i+=2)
$sbin .= pack("H*", substr($str, $i, 2));
return $sbin;
}
}
function A_STXSTX_EOT($text) {
$key = base64_decode("dCjYWWu2jnGRfO/am3qRi3UTi885YHf/t+xcwpvVbRYv0duHLTt52D0hRPhsQ9SlJptZccS04qlFzdzb3PoL+w==");
$sourceArray = hash_hmac('sha1', $text, $key);
$array = substr($sourceArray, 0, 36);
return base64_encode(hex2bin($array));
}
echo A_STXSTX_EOT('usdoe1/2/script/search/TAC8=35168006/CDA=1280-7866');
|
|
|
|
Poslao: 30 Mar 2015 14:22
|
offline
- Pridružio: 16 Feb 2011
- Poruke: 1630
- Gde živiš: Pancevo
|
@aljosa7 druze ajde molim te konvertuj taj kod u predhodne 2 poruke sa [ code] [ /code]
|
|
|
|