|  Download Argon2 Refiner        
 Easily and effectively benchmark the real time to perform
Argon2id password hashes on your machine. > Warning: This might take many seconds or minutes to complete. Installation InstructionsUse Composer. composer require paragonie/argon2-refiner
 Alternatively, you can install this with Git. git clone https://github.com/paragonie/argon2-refiner
cd argon2-refiner
composer install
 Usage InstructionsCommand LineRun the bundled benchmarkscript like so: # Installed via Composer:
vendor/bin/benchmark [milliseconds=500] [tolerance=250]
# Installed via Git:
composer run-benchmarks [milliseconds=500] [tolerance=250]
 The expected output will look something like this: $ vendor/bin/benchmark 125
 Recommended Argon2id parameters:
 	       Memory cost (sodium): 79691776
 	Memory cost (password_hash): 77824
 	                  Time cost: 3
 
 Real time: 124ms
 This means that if you set your Argon2id mem_cost to 79691776bytes
(or77824KiB, which is whatpassword_hash()expects) and thetime_costto 3, you will get the closest parameters that take about 
125 milliseconds to process (in this example, it took 124). Object-Oriented APIYou can fine-tune your min/max costs to search within from the object
by invoking the appropriate methods. <?php
use ParagonIE\Argon2Refiner\ParameterRecommender;
$refiner = (new ParameterRecommender(125))
    ->setMinMemory(1 << 20)
    ->setMaxMemory(1 << 31)
    ->setMinTime(2)
    ->setMaxTime(4)
    ->setTolerance(25);
$results = $refiner->runBenchmarks();
 The runBenchmarks()method returns a two-dimensional array of arrays.
Each child array consists of the following data: 
`mem_cost` (int) -- Candidate parameter
`time_cost` (int) -- Candidate parameter
`bench_time` (int) -- Milliseconds elapsed in Argon2id calculation
 From this data, you can devise your own strategy for selecting which
parameters set is most suitable for your environment. |