Vice City: Multiplayer

VC:MP Discussion => General Discussion => Topic started by: ! on Jul 11, 2017, 10:40 AM

Title: Related to PHP
Post by: ! on Jul 11, 2017, 10:40 AM
Guys i am new to PHP.
I've tried to convert this to PHP but its not working

function Encrypt( $string )
{
$hp =
[
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
];

$k =
[
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
];

$w = array( 64 );
$i = 0;
$s = 0;
$len = $string.len( );
$word_array = array( 0 );

for( $i = 0; $i < $len - 3; $i += 4 )
{
array_push( $word_array, $string[$i] << 0x18 | $string[$i + 1] << 0x10 | $string[$i + 2] << 0x08 | $string[$i + 3] );
}

switch( $len % 4 )
{
case 0:
$i = 0x80000000;
break;
case 1:
$i = $string[$len - 1] << 0x18 | 0x80000000;
break;
case 2:
$i = $string[$len - 2] << 0x18 | $string[$len - 1] << 0x10 | 0x08000;
break;
case 3:
$i = $string[$len - 3] << 0x18 | $string[$len - 2] << 0x10 | $string[$len - 1] << 0x08 | 0x80;
break;
}
array_push( $word_array, $i );

while( ( $word_array.len() % 0x10 ) != 0x0E ) { array_push( $word_array, 0 ); }

array_push( $word_array, $len >> 0x10 );
array_push( $word_array, $len << 0x03 ) & 0xFFFFFFFF );

$s0;
$s1;
for( $s = 0; $s < $word_array.len(); $s += 0x10 )
{
for( $i = 0x00; $i < 0x10; $i++ ) { $w[$i] = $word_array[$s + $i]; }

for( $i = 0x10; $i < 0x40; $i++ )
{
$s0 = rotateRight( $w[$i - 15], 7 ) ^ rotateRight( $w[$i - 15], 18 ) ^ ( $w[$i - 15] >> 3 );
$s1 = rotateRight( $w[$i - 2], 17 ) ^ rotateRight( $w[$i - 2], 19 ) ^ ( $w[$i - 2] >> 10 );
$w[$i] = $w[$i - 0x10] + $s0 + $w[$i - 7] + $s1;
}

$a = $hp[0];
$b = $hp[1];
$c = $hp[2];
$d = $hp[3];
$e = $hp[4];
$f = $hp[5];
$g = $hp[6];
$h = $hp[7];

for( $i = 0x00; $i < 0x40; $i++ )
{
$s0 = ( rotateRight( $a, 2 ) ^ rotateRight( $a, 13 ) ^ rotateRight( $a, 22 ) );
$maj = ( ( $a & $b ) ^ ( $a & $c ) ^ ( $b & $c ) );
$t2  = ( $s0 + $maj );
$s1 = ( rotateRight( $e, 6 ) ^ rotateRight( $e, 11) ^ rotateRight( $e, 25 ) );
$ch  = ( ( $e & $f ) ^ ( ( ~$e ) & $g ) );
$t1  = ( $h + $s1 + $ch + $k[$i] + $w[$i] );

$h = $g;
$g = $f;
$f = $e;
$e = $d + $t1;
$d = $c;
$c = $b;
$b = $a;
$a = $t1 + $t2;
}

$hp[0] += $a;
$hp[1] += $b;
$hp[2] += $c;
$hp[3] += $d;
$hp[4] += $e;
$hp[5] += $f;
$hp[6] += $g;
$hp[7] += $h;
}

$hash = format
(
"%08x%08x%08x%08x%08x%08x%08x%08x",
$hp[0],
$hp[1],
$hp[2],
$hp[3],
$hp[4],
$hp[5],
$hp[6],
$hp[7]
);

return $hash;
}

By using this nothing happens
echo  Encrypt( "123blabla" );

I really need this encryption :)

For Spammers
Dont post shits like use php encryption.
Title: Re: Related to PHP
Post by: NicusorN5 on Jul 11, 2017, 10:57 AM
Uhh. use ''local $variable = value'?
Title: Re: Related to PHP
Post by: ! on Jul 11, 2017, 11:14 AM
Quote from: NicusorN5 on Jul 11, 2017, 10:57 AMUhh. use ''local $variable = value'?

 :( Not working
function Encrypt( $string )
{
local $hp =
[
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
];

local $k =
[
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
];

local
$w = array( 64 ),
$i = 0,
$s = 0,
$len = $string.len( ),
$word_array = array( 0 );

for( $i = 0; $i < $len - 3; $i += 4 )
{
array_push( $word_array, $string[$i] << 0x18 | $string[$i + 1] << 0x10 | $string[$i + 2] << 0x08 | $string[$i + 3] );
}

switch( $len % 4 )
{
case 0:
$i = 0x80000000;
break;
case 1:
$i = $string[$len - 1] << 0x18 | 0x80000000;
break;
case 2:
$i = $string[$len - 2] << 0x18 | $string[$len - 1] << 0x10 | 0x08000;
break;
case 3:
$i = $string[$len - 3] << 0x18 | $string[$len - 2] << 0x10 | $string[$len - 1] << 0x08 | 0x80;
break;
}
array_push( $word_array, $i );

while( ( $word_array.len() % 0x10 ) != 0x0E ) { array_push( $word_array, 0 ); }

array_push( $word_array, $len >> 0x10 );
array_push( $word_array, $len << 0x03 ) & 0xFFFFFFFF );

local $s0, $s1;
for( $s = 0; $s < $word_array.len(); $s += 0x10 )
{
for( $i = 0x00; $i < 0x10; $i++ ) { $w[$i] = $word_array[$s + $i]; }

for( $i = 0x10; $i < 0x40; $i++ )
{
$s0 = rotateRight( $w[$i - 15], 7 ) ^ rotateRight( $w[$i - 15], 18 ) ^ ( $w[$i - 15] >> 3 );
$s1 = rotateRight( $w[$i - 2], 17 ) ^ rotateRight( $w[$i - 2], 19 ) ^ ( $w[$i - 2] >> 10 );
$w[$i] = $w[$i - 0x10] + $s0 + $w[$i - 7] + $s1;
}

local
$a = $hp[0],
$b = $hp[1],
$c = $hp[2],
$d = $hp[3],
$e = $hp[4],
$f = $hp[5],
$g = $hp[6],
$h = $hp[7];

for( $i = 0x00; $i < 0x40; $i++ )
{
$s0 = ( rotateRight( $a, 2 ) ^ rotateRight( $a, 13 ) ^ rotateRight( $a, 22 ) );
local $maj = ( ( $a & $b ) ^ ( $a & $c ) ^ ( $b & $c ) );
local $t2  = ( $s0 + $maj );
$s1 = ( rotateRight( $e, 6 ) ^ rotateRight( $e, 11) ^ rotateRight( $e, 25 ) );
local $ch  = ( ( $e & $f ) ^ ( ( ~$e ) & $g ) );
local $t1  = ( $h + $s1 + $ch + $k[$i] + $w[$i] );

$h = $g;
$g = $f;
$f = $e;
$e = $d + $t1;
$d = $c;
$c = $b;
$b = $a;
$a = $t1 + $t2;
}

$hp[0] += $a;
$hp[1] += $b;
$hp[2] += $c;
$hp[3] += $d;
$hp[4] += $e;
$hp[5] += $f;
$hp[6] += $g;
$hp[7] += $h;
}

local $hash = format
(
"%08x%08x%08x%08x%08x%08x%08x%08x",
$hp[0],
$hp[1],
$hp[2],
$hp[3],
$hp[4],
$hp[5],
$hp[6],
$hp[7]
);

return $hash;
}
Title: Re: Related to PHP
Post by: EK.IceFlake on Jul 11, 2017, 12:42 PM
Quote from: NicusorN5 on Jul 11, 2017, 10:57 AMUhh. use ''local $variable = value'?
In PHP you don't need to (and can't) declare variables.
Title: Re: Related to PHP
Post by: ysc3839 on Jul 11, 2017, 01:35 PM
Could you tell me why you need this encryption algorithm?
Title: Re: Related to PHP
Post by: NicusorN5 on Jul 11, 2017, 02:32 PM
Quote from: EK.IceFlake on Jul 11, 2017, 12:42 PM
Quote from: NicusorN5 on Jul 11, 2017, 10:57 AMUhh. use ''local $variable = value'?
In PHP you don't need to (and can't) declare variables.
I tought it was squirrel. xD
Title: Re: Related to PHP
Post by: ! on Jul 11, 2017, 04:48 PM
Quote from: ysc3839 on Jul 11, 2017, 01:35 PMCould you tell me why you need this encryption algorithm?
Used in my server creating ucp for users in webstats.
Title: Re: Related to PHP
Post by: Thijn on Jul 11, 2017, 04:59 PM
Then use a normal encryption that's widely used and proven to be safe.
Title: Re: Related to PHP
Post by: ! on Jul 12, 2017, 07:32 AM
Quote from: Thijn on Jul 11, 2017, 04:59 PMThen use a normal encryption that's widely used and proven to be safe.
Well i am trying to let users login to UCP with same passwards as they've used in server.I thaught its possible to convert this encryption to php but it's not working.
Title: Re: Related to PHP
Post by: ! on Jul 12, 2017, 07:34 AM
Is this function(format()) availabe in PHP

$hash = format
   (
   "%08x%08x%08x%08x%08x%08x%08x%08x",
   $hp[0],
   $hp[1],
   $hp[2],
   $hp[3],
   $hp[4],
   $hp[5],
   $hp[6],
   $hp[7]
   );
Title: Re: Related to PHP
Post by: EK.IceFlake on Jul 12, 2017, 08:32 AM
Try this:
<?phpfunction Encrypt( $string ){    $hp =    [    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,    0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19    ];    $k =    [    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2    ];    $w = [];    $i = 0;    $s = 0;    $len = strlen($string);    $word_array = [];    for( $i = 0; $i < $len - 3; $i += 4 )    {        $word_array[] = $string[$i] << 0x18 | $string[$i + 1] << 0x10 | $string[$i + 2] << 0x08 | $string[$i + 3];    }    switch( $len % 4 )    {    case 0:    $i = 0x80000000;    break;    case 1:    $i = ord(substr($string, $len - 1, 1)) << 0x18 | 0x80000000;    break;    case 2:    $i = ord(substr($string, $len - 2, 1)) << 0x18 | ord(substr($string, $len - 1, 1)) << 0x10 | 0x08000;//here    break;    case 3:    $i = $string[$len - 3] << 0x18 | $string[$len - 2] << 0x10 | $string[$len - 1] << 0x08 | 0x80;    break;    }    $word_array[] = $i;    while( ( count($word_array) % 0x10 ) != 0x0E ) { $word_array[] = 0; }    $word_array[] = $len >> 0x10 ;    $word_array[] = ($len << 0x03) & 0xFFFFFFFF;    $s0;    $s1;    for( $s = 0; $s < count($word_array); $s += 0x10 )    {    for( $i = 0x00; $i < 0x10; $i++ ) { $w[$i] = $word_array[$s + $i]; }    for( $i = 0x10; $i < 0x40; $i++ )    {    $s0 = rotateRight( $w[$i - 15], 7 ) ^ rotateRight( $w[$i - 15], 18 ) ^ ( $w[$i - 15] >> 3 );    $s1 = rotateRight( $w[$i - 2], 17 ) ^ rotateRight( $w[$i - 2], 19 ) ^ ( $w[$i - 2] >> 10 );    $w[$i] = $w[$i - 0x10] + $s0 + $w[$i - 7] + $s1;    }    $a = $hp[0];    $b = $hp[1];    $c = $hp[2];    $d = $hp[3];    $e = $hp[4];    $f = $hp[5];    $g = $hp[6];    $h = $hp[7];    for( $i = 0x00; $i < 0x40; $i++ )    {    $s0 = ( rotateRight( $a, 2 ) ^ rotateRight( $a, 13 ) ^ rotateRight( $a, 22 ) );    $maj = ( ( $a & $b ) ^ ( $a & $c ) ^ ( $b & $c ) );    $t2  = ( $s0 + $maj );    $s1 = ( rotateRight( $e, 6 ) ^ rotateRight( $e, 11) ^ rotateRight( $e, 25 ) );    $ch  = ( ( $e & $f ) ^ ( ( ~$e ) & $g ) );    $t1  = ( $h + $s1 + $ch + $k[$i] + $w[$i] );    $h = $g;    $g = $f;    $f = $e;    $e = $d + $t1;    $d = $c;    $c = $b;    $b = $a;    $a = $t1 + $t2;    }    $hp[0] += $a;    $hp[1] += $b;    $hp[2] += $c;    $hp[3] += $d;    $hp[4] += $e;    $hp[5] += $f;    $hp[6] += $g;    $hp[7] += $h;    }    return implode("", $hp);}

And make sure you port over your rotateRight function.
Title: Re: Related to PHP
Post by: ! on Jul 12, 2017, 11:18 AM
Quote from: EK.IceFlake on Jul 12, 2017, 08:32 AMTry this:
...
And make sure you port over your rotateRight function.
Thx @EK.IceFlake  but this doesn't add the string the output is something like this
Quote12345 returns
8.7861090275141E+213.6833282875952E+215.5685565521547E+214.6909687980601E+211.4228493143887E+225.9748002442625E+219.0528085310396E+217.6357735793857E+21

I thaught the format() and len() function is available in php i was wrong.
This is what i've tried but it doesn't returns the same string as in squirrel
Both returns changed string.

[spoiler=PHP_Encryption]
<?php echo Encrypt( "12345" );function Encrypt( $string )	{		$hp =			[			0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,			0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19			];		$k =			[			0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,			0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,			0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,			0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,			0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,			0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,			0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,			0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2			];			$w		 = array( 64 );			$i		 = 0;			$s		 = 0;			$len	= strlen($string);			$word_array = array( 0 );	for( $i = 0; $i < $len - 3; $i += 4 )		{		array_push( $word_array, $string[$i] << 0x18 | $string[$i + 1] << 0x10 | $string[$i + 2] << 0x08 | $string[$i + 3] );		}	switch( $len % 4 )		{			case 0:				$i = 0x80000000;				break;			case 1:				$i = $string[$len - 1] << 0x18 | 0x80000000;				break;			case 2:				$i = $string[$len - 2] << 0x18 | $string[$len - 1] << 0x10 | 0x08000;				break;			case 3:				$i = $string[$len - 3] << 0x18 | $string[$len - 2] << 0x10 | $string[$len - 1] << 0x08 | 0x80;				break;		}	array_push( $word_array, $i );		while( ( count($word_array) % 0x10 ) != 0x0E )	{	array_push( $word_array, 0 );	}				array_push( $word_array, $len >> 0x10 );	array_push( $word_array, $len << 0x03 & 0xFFFFFFFF );	$s0;	$s1;	for( $s = 0; $s < count($word_array); $s += 0x10 )			{			for( $i = 0x00; $i < 0x10; $i++ )	{	$w[$i] = $word_array[$s + $i];	}			for( $i = 0x10; $i < 0x40; $i++ )				{				$s0	= rotateRight( $w[$i - 15], 7 ) ^ rotateRight( $w[$i - 15], 18 ) ^ ( $w[$i - 15] >> 3 );				$s1	= rotateRight( $w[$i - 2], 17 ) ^ rotateRight( $w[$i - 2], 19 ) ^ ( $w[$i - 2] >> 10 );				$w[$i] = $w[$i - 0x10] + $s0 + $w[$i - 7] + $s1;			 	}				$a = $hp[0];				$b = $hp[1];				$c = $hp[2];				$d = $hp[3];				$e = $hp[4];				$f = $hp[5];				$g = $hp[6];				$h = $hp[7];			for( $i = 0x00; $i < 0x40; $i++ )			{				$s0	= ( rotateRight( $a, 2 ) ^ rotateRight( $a, 13 ) ^ rotateRight( $a, 22 ) );				$maj = ( ( $a & $b ) ^ ( $a & $c ) ^ ( $b & $c ) );				$t2  = ( $s0 + $maj );				$s1	= ( rotateRight( $e, 6 ) ^ rotateRight( $e, 11) ^ rotateRight( $e, 25 ) );				$ch  = ( ( $e & $f ) ^ ( ( ~$e ) & $g ) );				$t1  = ( $h + $s1 + $ch + $k[$i] + $w[$i] );				$h = $g;				$g = $f;				$f = $e;				$e = $d + $t1;				$d = $c;				$c = $b;				$b = $a;				$a = $t1 + $t2;			}			$hp[0] += $a;			$hp[1] += $b;			$hp[2] += $c;			$hp[3] += $d;			$hp[4] += $e;			$hp[5] += $f;			$hp[6] += $g;			$hp[7] += $h;		}	$hash = sprintf				(				"%08x%08x%08x%08x%08x%08x%08x%08x",				$hp[0],				$hp[1],				$hp[2],				$hp[3],				$hp[4],				$hp[5],				$hp[6],				$hp[7]				);	return $hash;	}function rotateRight($val, $sbits)	{	return ($val >> $sbits) | ($val << (0x20 - $sbits) );	}
[/spoiler]

[spoiler=Squirrel_Encryption]
print( Encrypt( "12345" ) );

function Encrypt( string )
{
local hp =
[
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
];

local k =
[
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
];

local
w = array( 64 ),
i = 0,
s = 0,
len = string.len( ),
word_array = array( 0 );

for( i = 0; i < len - 3; i += 4 )
{
word_array.push( string[i] << 0x18 | string[i + 1] << 0x10 | string[i + 2] << 0x08 | string[i + 3] );
}

switch( len % 4 )
{
case 0:
i = 0x80000000;
break;
case 1:
i = string[len - 1] << 0x18 | 0x80000000;
break;
case 2:
i = string[len - 2] << 0x18 | string[len - 1] << 0x10 | 0x08000;
break;
case 3:
i = string[len - 3] << 0x18 | string[len - 2] << 0x10 | string[len - 1] << 0x08 | 0x80;
break;
}
word_array.push( i );

while( ( word_array.len() % 0x10 ) != 0x0E )
word_array.push( 0 );

word_array.push( len >> 0x10 );
word_array.push( ( len << 0x03 ) & 0xFFFFFFFF );

local s0, s1;
for( s = 0; s < word_array.len(); s += 0x10 )
{
for( i = 0x00; i < 0x10; i++ )
w[i] = word_array[s + i];

for( i = 0x10; i < 0x40; i++ )
{
s0 = rotateRight( w[i - 15], 7 ) ^ rotateRight( w[i - 15], 18 ) ^ ( w[i - 15] >> 3 );
s1 = rotateRight( w[i - 2], 17 ) ^ rotateRight( w[i - 2], 19 ) ^ ( w[i - 2] >> 10 );
w[i] = w[i - 0x10] + s0 + w[i - 7] + s1;
}

local a = hp[0],
b = hp[1],
c = hp[2],
d = hp[3],
e = hp[4],
f = hp[5],
g = hp[6],
h = hp[7];

for( i = 0x00; i < 0x40; i++ )
{
s0 = ( rotateRight( a, 2 ) ^ rotateRight( a, 13 ) ^ rotateRight( a, 22 ) );
local maj = ( ( a & b ) ^ ( a & c ) ^ ( b & c ) );
local t2  = ( s0 + maj );
s1 = ( rotateRight( e, 6 ) ^ rotateRight( e, 11) ^ rotateRight( e, 25 ) );
local ch  = ( ( e & f ) ^ ( ( ~e ) & g ) );
local t1  = ( h + s1 + ch + k[i] + w[i] );

h = g;
g = f;
f = e;
e = d + t1;
d = c;
c = b;
b = a;
a = t1 + t2;
}

hp[0] += a;
hp[1] += b;
hp[2] += c;
hp[3] += d;
hp[4] += e;
hp[5] += f;
hp[6] += g;
hp[7] += h;
}

local hash = format
(
"%08x%08x%08x%08x%08x%08x%08x%08x",
hp[0],
hp[1],
hp[2],
hp[3],
hp[4],
hp[5],
hp[6],
hp[7]
);

return hash;
}

function rotateRight(val, sbits)
{
return (val >> sbits) | (val << (0x20 - sbits) );
}
[/spoiler]
Title: Re: Related to PHP
Post by: EK.IceFlake on Jul 12, 2017, 12:07 PM
Quote from: zeus on Jul 12, 2017, 11:18 AM
Quote from: EK.IceFlake on Jul 12, 2017, 08:32 AMTry this:
...
And make sure you port over your rotateRight function.
Thx @EK.IceFlake  but this doesn't add the string the output is something like this
Quote12345 returns
8.7861090275141E+213.6833282875952E+215.5685565521547E+214.6909687980601E+211.4228493143887E+225.9748002442625E+219.0528085310396E+217.6357735793857E+21

I thaught the format() and len() function is available in php i was wrong.
This is what i've tried but it doesn't returns the same string as in squirrel
Both returns changed string.

[spoiler=PHP_Encryption]
<?php echo Encrypt( "12345" );function Encrypt( $string )	{		$hp =			[			0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,			0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19			];		$k =			[			0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,			0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,			0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,			0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,			0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,			0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,			0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,			0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2			];			$w		 = array( 64 );			$i		 = 0;			$s		 = 0;			$len	= strlen($string);			$word_array = array( 0 );	for( $i = 0; $i < $len - 3; $i += 4 )		{		array_push( $word_array, $string[$i] << 0x18 | $string[$i + 1] << 0x10 | $string[$i + 2] << 0x08 | $string[$i + 3] );		}	switch( $len % 4 )		{			case 0:				$i = 0x80000000;				break;			case 1:				$i = $string[$len - 1] << 0x18 | 0x80000000;				break;			case 2:				$i = $string[$len - 2] << 0x18 | $string[$len - 1] << 0x10 | 0x08000;				break;			case 3:				$i = $string[$len - 3] << 0x18 | $string[$len - 2] << 0x10 | $string[$len - 1] << 0x08 | 0x80;				break;		}	array_push( $word_array, $i );		while( ( count($word_array) % 0x10 ) != 0x0E )	{	array_push( $word_array, 0 );	}				array_push( $word_array, $len >> 0x10 );	array_push( $word_array, $len << 0x03 & 0xFFFFFFFF );	$s0;	$s1;	for( $s = 0; $s < count($word_array); $s += 0x10 )			{			for( $i = 0x00; $i < 0x10; $i++ )	{	$w[$i] = $word_array[$s + $i];	}			for( $i = 0x10; $i < 0x40; $i++ )				{				$s0	= rotateRight( $w[$i - 15], 7 ) ^ rotateRight( $w[$i - 15], 18 ) ^ ( $w[$i - 15] >> 3 );				$s1	= rotateRight( $w[$i - 2], 17 ) ^ rotateRight( $w[$i - 2], 19 ) ^ ( $w[$i - 2] >> 10 );				$w[$i] = $w[$i - 0x10] + $s0 + $w[$i - 7] + $s1;			 	}				$a = $hp[0];				$b = $hp[1];				$c = $hp[2];				$d = $hp[3];				$e = $hp[4];				$f = $hp[5];				$g = $hp[6];				$h = $hp[7];			for( $i = 0x00; $i < 0x40; $i++ )			{				$s0	= ( rotateRight( $a, 2 ) ^ rotateRight( $a, 13 ) ^ rotateRight( $a, 22 ) );				$maj = ( ( $a & $b ) ^ ( $a & $c ) ^ ( $b & $c ) );				$t2  = ( $s0 + $maj );				$s1	= ( rotateRight( $e, 6 ) ^ rotateRight( $e, 11) ^ rotateRight( $e, 25 ) );				$ch  = ( ( $e & $f ) ^ ( ( ~$e ) & $g ) );				$t1  = ( $h + $s1 + $ch + $k[$i] + $w[$i] );				$h = $g;				$g = $f;				$f = $e;				$e = $d + $t1;				$d = $c;				$c = $b;				$b = $a;				$a = $t1 + $t2;			}			$hp[0] += $a;			$hp[1] += $b;			$hp[2] += $c;			$hp[3] += $d;			$hp[4] += $e;			$hp[5] += $f;			$hp[6] += $g;			$hp[7] += $h;		}	$hash = sprintf				(				"%08x%08x%08x%08x%08x%08x%08x%08x",				$hp[0],				$hp[1],				$hp[2],				$hp[3],				$hp[4],				$hp[5],				$hp[6],				$hp[7]				);	return $hash;	}function rotateRight($val, $sbits)	{	return ($val >> $sbits) | ($val << (0x20 - $sbits) );	}
[/spoiler]

[spoiler=Squirrel_Encryption]
print( Encrypt( "12345" ) );

function Encrypt( string )
{
local hp =
[
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
];

local k =
[
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
];

local
w = array( 64 ),
i = 0,
s = 0,
len = string.len( ),
word_array = array( 0 );

for( i = 0; i < len - 3; i += 4 )
{
word_array.push( string[i] << 0x18 | string[i + 1] << 0x10 | string[i + 2] << 0x08 | string[i + 3] );
}

switch( len % 4 )
{
case 0:
i = 0x80000000;
break;
case 1:
i = string[len - 1] << 0x18 | 0x80000000;
break;
case 2:
i = string[len - 2] << 0x18 | string[len - 1] << 0x10 | 0x08000;
break;
case 3:
i = string[len - 3] << 0x18 | string[len - 2] << 0x10 | string[len - 1] << 0x08 | 0x80;
break;
}
word_array.push( i );

while( ( word_array.len() % 0x10 ) != 0x0E )
word_array.push( 0 );

word_array.push( len >> 0x10 );
word_array.push( ( len << 0x03 ) & 0xFFFFFFFF );

local s0, s1;
for( s = 0; s < word_array.len(); s += 0x10 )
{
for( i = 0x00; i < 0x10; i++ )
w[i] = word_array[s + i];

for( i = 0x10; i < 0x40; i++ )
{
s0 = rotateRight( w[i - 15], 7 ) ^ rotateRight( w[i - 15], 18 ) ^ ( w[i - 15] >> 3 );
s1 = rotateRight( w[i - 2], 17 ) ^ rotateRight( w[i - 2], 19 ) ^ ( w[i - 2] >> 10 );
w[i] = w[i - 0x10] + s0 + w[i - 7] + s1;
}

local a = hp[0],
b = hp[1],
c = hp[2],
d = hp[3],
e = hp[4],
f = hp[5],
g = hp[6],
h = hp[7];

for( i = 0x00; i < 0x40; i++ )
{
s0 = ( rotateRight( a, 2 ) ^ rotateRight( a, 13 ) ^ rotateRight( a, 22 ) );
local maj = ( ( a & b ) ^ ( a & c ) ^ ( b & c ) );
local t2  = ( s0 + maj );
s1 = ( rotateRight( e, 6 ) ^ rotateRight( e, 11) ^ rotateRight( e, 25 ) );
local ch  = ( ( e & f ) ^ ( ( ~e ) & g ) );
local t1  = ( h + s1 + ch + k[i] + w[i] );

h = g;
g = f;
f = e;
e = d + t1;
d = c;
c = b;
b = a;
a = t1 + t2;
}

hp[0] += a;
hp[1] += b;
hp[2] += c;
hp[3] += d;
hp[4] += e;
hp[5] += f;
hp[6] += g;
hp[7] += h;
}

local hash = format
(
"%08x%08x%08x%08x%08x%08x%08x%08x",
hp[0],
hp[1],
hp[2],
hp[3],
hp[4],
hp[5],
hp[6],
hp[7]
);

return hash;
}

function rotateRight(val, sbits)
{
return (val >> sbits) | (val << (0x20 - sbits) );
}
[/spoiler]
1.
.len()
You use strlen(...) if it's a string and count(...) if it's an array.

2.
format
You seem to want to convert it to a hex string.
That'd be dechex.
Title: Re: Related to PHP
Post by: ! on Jul 12, 2017, 02:20 PM
Quote from: EK.IceFlake on Jul 12, 2017, 12:07 PM1.
.len()
You use strlen(...) if it's a string and count(...) if it's an array.
Got this one but still confused in 2nd one.
dechex completely change the output, where i've to use this.
Quote from: EK.IceFlake on Jul 12, 2017, 12:07 PM2.
format
You seem to want to convert it to a hex string.
That'd be dechex.

http://phptester.net/
Title: Re: Related to PHP
Post by: EK.IceFlake on Jul 12, 2017, 02:40 PM
Quote from: zeus on Jul 12, 2017, 02:20 PM
Quote from: EK.IceFlake on Jul 12, 2017, 12:07 PM1.
.len()
You use strlen(...) if it's a string and count(...) if it's an array.
Got this one but still confused in 2nd one.
dechex completely change the output, where i've to use this.
Quote from: EK.IceFlake on Jul 12, 2017, 12:07 PM2.
format
You seem to want to convert it to a hex string.
That'd be dechex.

http://phptester.net/
The different output is most likely you using array(64) and the likes. In PHP, array(x) is the equivalent of [x]. Instead, you simply want to declare it as []. PHP will automatically create indexes that don't exist.