| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <?php
- declare(strict_types=1);
- namespace App\Utils;
- use PHPUnit\Framework\TestCase;
- use function strlen;
- class HashTest extends TestCase
- {
- /**
- * @covers App\Utils\Hash::cookieHash
- */
- public function testCookieHash()
- {
- $_ENV['key'] = 'cookie_key';
- $passHash = 'password';
- $expire_in = 69420;
- $result = Hash::cookieHash($passHash, $expire_in);
- $this->assertIsString($result);
- $this->assertEquals(45, strlen($result));
- $this->assertEquals('e91053c4a7d6cc7fa5eb900b1ad96df484483ceace12a', $result);
- }
- /**
- * @covers App\Utils\Hash::ipHash
- */
- public function testIpHash()
- {
- $_ENV['key'] = 'cookie_key';
- $ip = '192.168.0.1';
- $uid = 69;
- $expire_in = 69420;
- $result = Hash::ipHash($ip, $uid, $expire_in);
- $this->assertIsString($result);
- $this->assertEquals(45, strlen($result));
- $this->assertEquals('522b51095b778f9f107153f75be554be1f8a8f2c1f4b4', $result);
- }
- /**
- * @covers App\Utils\Hash::deviceHash
- */
- public function testDeviceHash()
- {
- $_ENV['key'] = 'cookie_key';
- $device = 'Firefox/119.0';
- $uid = 69;
- $expire_in = 69420;
- $result = Hash::deviceHash($device, $uid, $expire_in);
- $this->assertIsString($result);
- $this->assertEquals(45, strlen($result));
- $this->assertEquals('1fd5a37cc8769c01a49f6eb9c167dc6ee6cc842913dba', $result);
- }
- /**
- * @covers App\Utils\Hash::checkPassword
- * @covers App\Utils\Hash::passwordHash
- * @covers App\Utils\Hash::sha256WithSalt
- * @covers App\Utils\Hash::sha3WithSalt
- */
- public function testPasswordFunctions()
- {
- $_ENV['salt'] = 'password_salt';
- $_ENV['pwdMethod'] = 'bcrypt';
- $password = 'password';
- $hashedPassword = Hash::passwordHash($password);
- $this->assertTrue(Hash::checkPassword($hashedPassword, $password));
- $this->assertFalse(Hash::checkPassword($hashedPassword, 'wrong_password'));
- $_ENV['pwdMethod'] = 'argon2i';
- $hashedPassword = Hash::passwordHash($password);
- $this->assertTrue(Hash::checkPassword($hashedPassword, $password));
- $this->assertFalse(Hash::checkPassword($hashedPassword, 'wrong_password'));
- $_ENV['pwdMethod'] = 'argon2id';
- $hashedPassword = Hash::passwordHash($password);
- $this->assertTrue(Hash::checkPassword($hashedPassword, $password));
- $this->assertFalse(Hash::checkPassword($hashedPassword, 'wrong_password'));
- $_ENV['pwdMethod'] = 'sha256';
- $hashedPassword = Hash::passwordHash($password);
- $this->assertTrue(Hash::checkPassword($hashedPassword, $password));
- $this->assertFalse(Hash::checkPassword($hashedPassword, 'wrong_password'));
- $_ENV['pwdMethod'] = 'sha3';
- $hashedPassword = Hash::passwordHash($password);
- $this->assertTrue(Hash::checkPassword($hashedPassword, $password));
- $this->assertFalse(Hash::checkPassword($hashedPassword, 'wrong_password'));
- }
- }
|