75 lines
1.7 KiB
PHP
75 lines
1.7 KiB
PHP
<?php
|
|
|
|
/*
|
|
* 工具服务类
|
|
* */
|
|
|
|
namespace app\admin\service;
|
|
|
|
|
|
class ToolService {
|
|
|
|
/**
|
|
* 获取文件后缀名
|
|
* @param $filename
|
|
* @return string
|
|
*/
|
|
public static function getSuffix($filename) {
|
|
return strrchr($filename, '.');
|
|
}
|
|
|
|
/**
|
|
* 加密
|
|
* @param $data 加密内容
|
|
* @param $key 秘钥
|
|
* @return string
|
|
*/
|
|
public static function encrypt($data, $key) {
|
|
$key = md5($key);
|
|
$x = 0;
|
|
$len = strlen($data);
|
|
$l = strlen($key);
|
|
list($char, $str) = ['', ''];
|
|
for ($i = 0; $i < $len; $i++) {
|
|
if ($x == $l) {
|
|
$x = 0;
|
|
}
|
|
$char .= $key{$x};
|
|
$x++;
|
|
}
|
|
for ($i = 0; $i < $len; $i++) {
|
|
$str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
|
|
}
|
|
return base64_encode($str);
|
|
}
|
|
|
|
/**
|
|
* 解密
|
|
* @param $data 解密内容
|
|
* @param $key 秘钥
|
|
* @return string
|
|
*/
|
|
public static function decrypt($data, $key) {
|
|
$key = md5($key);
|
|
$x = 0;
|
|
$data = base64_decode($data);
|
|
$len = strlen($data);
|
|
$l = strlen($key);
|
|
list($char, $str) = ['', ''];
|
|
for ($i = 0; $i < $len; $i++) {
|
|
if ($x == $l) {
|
|
$x = 0;
|
|
}
|
|
$char .= substr($key, $x, 1);
|
|
$x++;
|
|
}
|
|
for ($i = 0; $i < $len; $i++) {
|
|
if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) {
|
|
$str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
|
|
} else {
|
|
$str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
|
|
}
|
|
}
|
|
return $str;
|
|
}
|
|
} |