Add class
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Class HRCEncryptor
|
||||
*
|
||||
* For key need use Encryption::format($company->code)
|
||||
*/
|
||||
class HRCEncryptor
|
||||
{
|
||||
const IV = 'AiFFzylt4NjaOflK';
|
||||
|
||||
public static function format($key)
|
||||
{
|
||||
$reverse = 0;
|
||||
$n = $key;
|
||||
while ($n > 0)
|
||||
{
|
||||
$reverse = $reverse * 10;
|
||||
$reverse = $reverse + $n%10;
|
||||
$n = (int)($n/10);
|
||||
}
|
||||
|
||||
return pow(($key + $reverse), 2);
|
||||
}
|
||||
|
||||
public static function key($key)
|
||||
{
|
||||
while(strlen($key) < 32) {
|
||||
$key .= $key;
|
||||
}
|
||||
|
||||
return substr($key, 0, 32);
|
||||
}
|
||||
|
||||
public static function encrypt($content, $key)
|
||||
{
|
||||
return base64_encode(openssl_encrypt($content, 'aes-256-cbc', self::key($key), OPENSSL_RAW_DATA, self::IV));
|
||||
}
|
||||
|
||||
public static function decrypt($content, $key)
|
||||
{
|
||||
return openssl_decrypt(base64_decode($content), 'aes-256-cbc', self::key($key), OPENSSL_RAW_DATA, self::IV);
|
||||
}
|
||||
|
||||
public static function sign($content, $key)
|
||||
{
|
||||
return md5($key . md5($content));
|
||||
}
|
||||
|
||||
public static function check($signature, $public_key)
|
||||
{
|
||||
$fields = $_REQUEST;
|
||||
ksort($fields);
|
||||
|
||||
$params = [];
|
||||
foreach($fields as $key => $value) {
|
||||
if($key != 'signature') {
|
||||
$params[] = $key . '=' . $value;
|
||||
}
|
||||
}
|
||||
|
||||
$check = md5($public_key . md5(implode('&', $params)));
|
||||
|
||||
return $check == $signature;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user