<?php //require('functions.inc.php'); $b64='./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; function encode64_one(int $src): string { global $b64; return $b64[$src&0x3f]; } function encode64_uint32(int $src, int $srcbits): string { global $b64; $dst=''; for($bit=0; $bit<$srcbits; $bit+=6) { $i=$src&0x3F; $c=encode64_one($i); $dst.=$c; $src>>=6; } return $dst; } function encode64(string $src): string { $srclen=strlen($src); $dst=''; for($i=0; $i<$srclen;) { //third param missing voluntarily $value=0; $bits=0; do { $value|=ord($src[$i++])<<$bits; $bits+=8; } while($bits<24 && $i<$srclen); $dnext=encode64_uint32($value, $bits); $dst.=$dnext; } return $dst; } function decode64_one(string $src): int { global $b64; $dst=strpos($b64, $src); return $dst; } function decode64_uint32(string $src): int { $dstbits=strlen($src)*6; $bit=0; $value=0; $dst=''; $i=0; for($bit=0; $bit<$dstbits; $bit+=6) { $one=decode64_one($src[$i]); $i++; $value|=$one<<$bit; } return $value; } function decode64(string $src): string { $srclen=strlen($src); $dst=''; for($i=0;$i<$srclen;$i+=4) { $n=decode64_uint32(substr($src,$i,4)); $s=pack('V', $n); $s=substr($s,0,3); $dst.=$s; } return $dst; } $password='password'; $hash=sodium_crypto_pwhash_scryptsalsa208sha256_str('password', SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE); var_dump($hash); $length=32; $ar=explode('$',$hash); $salt=substr($ar[2],11); var_dump($salt); $hash=$ar[3]; var_dump($hash); $salt=decode64($salt); if(strlen($salt)>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES) $salt=substr($salt,0,SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES); $opslimit=524288; $memlimit=16777216; $hash2=sodium_crypto_pwhash_scryptsalsa208sha256($length,$password,$salt,$opslimit,$memlimit); $hash2=encode64($hash2); var_dump($hash2);
You have javascript disabled. You will not be able to edit any code.