侧边栏壁纸
  • 累计撰写 100 篇文章
  • 累计创建 55 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
PHP

PHP 加解密函数

Malson
2022-06-25 / 0 评论 / 0 点赞 / 54 阅读 / 188 字
/**
 * 加密
 *
 * @param $data string 需要加密的数据
 * @param $key  string 秘钥
 *
 * @return string
 */
function encrypt ( $data , $key )
{
    $key = md5( $key );
    $x   = 0;
    $len = strlen( $data );
    $l   = strlen( $key );

    $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 string 需要解密的数据
 * @param $key  string 秘钥
 *
 * @return null|string
 */
function decrypt ( $data , $key )
{
    $key  = md5( $key );
    $x    = 0;
    $data = base64_decode( $data );
    $len  = strlen( $data );
    $l    = strlen( $key );
    $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;
}
0
博主关闭了所有页面的评论