37 lines
830 B
PHP
37 lines
830 B
PHP
|
<?php
|
||
|
|
||
|
namespace App\Utils;
|
||
|
|
||
|
class Hmac {
|
||
|
private $key;
|
||
|
private $basePath = __DIR__ . '/../../cache/img/';
|
||
|
private $filePath;
|
||
|
private $hashPath;
|
||
|
|
||
|
public function __construct($key) {
|
||
|
$this->key = $key;
|
||
|
}
|
||
|
|
||
|
public function makeHmac($url) {
|
||
|
return hash_hmac('sha1', $url, $this->key);
|
||
|
}
|
||
|
|
||
|
private function makeHashPath($hashUrl) {
|
||
|
$this->hashPath = substr($hashUrl, 0, 4) . '/';
|
||
|
return $this->hashPath;
|
||
|
}
|
||
|
|
||
|
public function makeFilePath($hmac) {
|
||
|
$this->filePath = $this->basePath . $this->makeHashPath($hmac);
|
||
|
return $this->filePath;
|
||
|
}
|
||
|
|
||
|
public function checkHmac($receiveHmac, $url) {
|
||
|
if ($receiveHmac === $this->makeHmac($url, $this->key)) {
|
||
|
return true;
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|