I would like to convert this part of node.js code to PHP code. (WORKING)
function generateHashedPass (password, salt) {
var byteSalt = new Buffer(salt, 'base64');
var bytePass = new Buffer(password, 'ucs2');
var byteResult = Buffer.concat([byteSalt, bytePass]);
return sha1.update(byteResult).digest('base64');
}
console.log(generateHashedPass('111111', 'UY68RQZT14QPgSsfaw/F+w==') === 'L0xc787MxCwJJaZjFX6MqxkVcFE=' ? "Algo correct" : "Algo wrong" );
For now i have something like this in php : (NOT WORKING)
public function getHashedPass($pass, $salt) {
$base_salt = unpack('H*', base64_decode($salt));
$base_pass = unpack('H*', mb_convert_encoding($pass, 'UCS-2', 'auto'));
$base_result = $base_salt[1] . $base_pass[1];
return base64_encode(sha1($base_result));
}
But the result is not the same as the node.js function.
The result should be this : L0xc787MxCwJJaZjFX6MqxkVcFE=
When password is : 111111
And salt is : UY68RQZT14QPgSsfaw/F+w==
Try this:
//----------------------------------------------------
function getCharHex($aString) {
$bytes = str_split($aString, 2);
$result = "";
foreach ($bytes as $byte) {
$result .= chr(hexdec($byte));
}
return $result;
}
//----------------------------------------------------
function getHashedPass($pass, $salt) {
$base_salt = unpack('H*', base64_decode($salt));
$base_pass = unpack('H*', mb_convert_encoding($pass, 'UCS-2LE', 'auto'));
$base_result = getCharHex($base_salt[1].$base_pass[1]);
return base64_encode(sha1($base_result, true));
}
echo getHashedPass('111111', 'UY68RQZT14QPgSsfaw/F+w==');
//L0xc787MxCwJJaZjFX6MqxkVcFE=
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With