$hasher =
$sodium ?
new SodiumPasswordHasher() :
new NativePasswordHasher(null, null, null, \PASSWORD_ARGON2I
);
preg_match('# Password hash\s+(\$argon2i?\$[\w,=\$+\/]+={0,2})\s+#',
$output,
$matches);
$hash =
$matches[1
];
$this->
assertTrue($hasher->
verify($hash, 'password', null
));
} public function testEncodePasswordArgon2id() { if (!
($sodium =
(SodiumPasswordHasher::
isSupported() && \
defined('SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13'
))) && !\
defined('PASSWORD_ARGON2ID'
)) { $this->
markTestSkipped('Argon2id algorithm not available.'
);
} $this->
setupArgon2id();
$this->passwordHasherCommandTester->
execute([ 'password' => 'password',
'user-class' => 'Custom\Class\Argon2id\User',
],
['interactive' => false
]);
$output =
$this->passwordHasherCommandTester->
getDisplay();
$this->
assertStringContainsString('Password hashing succeeded',
$output);
$hasher =
$sodium ?
new SodiumPasswordHasher() :
new NativePasswordHasher(null, null, null, \PASSWORD_ARGON2ID
);
preg_match('# Password hash\s+(\$argon2id?\$[\w,=\$+\/]+={0,2})\s+#',
$output,
$matches);
$hash =
$matches[1
];