技术饭
PHP简单对称ID加密、解密算法
PHP简单对称ID加密、解密算法,有时候需要对数据进行简单的混淆,不让别人轻易破解,所以就需要对数据进行一定的加密解密来保证数据的安全性,这里做个简单的算法。
/**
* [encodeId ID加密]
*/
function encodeId($id = 0) {
//加密
return base64_encode(time() . $id);
}
改装:
/**
* [encodeId ID加密]
* @param int $id ID
* @param int $time 时间戳
*/
function encodeId($id = 0, $time = '') {
//时间戳
if(empty($time)){
$time = time();
} else {
$time = !empty(strtotime($time)) ? strtotime($time) : time();
}
//加密
return base64_encode($time . $id);
}
/**
* [decodeId ID解密]
*/
function decodeId($id = "") {
//解密
$id = str_replace("%3D", '=', $id);
//转码
$id = ConvertToUTF8(base64_decode($id));
//截取
$id = substr($id, 10);
//返回
return is_numeric($id) ? $id : 0;
}
/**
* [ConvertToUTF8 转换为utf-8]
*/
function ConvertToUTF8($text){
//检测
$encoding = mb_detect_encoding($text, mb_detect_order(), false);
//判断
if($encoding == "UTF-8"){
$text = mb_convert_encoding($text, 'UTF-8', 'UTF-8');
}
//转换
$out = iconv(mb_detect_encoding($text, mb_detect_order(), false), "UTF-8//IGNORE", $text);
//返回
return $out;
}
注意:这里有用到转码是为了保证,如果输入的解密串随机输入导致乱码报错。
加密:
解密:
文明上网理性发言!