検索
ホームページphp教程php手册php 简单加密/解密类

php 简单加密/解密类

Jun 06, 2016 pm 07:35 PM
php暗号化偉大なる神勉強単純復号化

刚学习php不久,请大神指教! 无 ?php/** * 精简版加密/解密类 * @author 布衣 QQ 780998900 * @packge SimpleTools * @link http://commoner.cn 布衣博客 * @copyright http://commoner.cn */class SimpleCrypt{ /** * 密钥 * 越复杂越好,但字符串长度会整

刚学习php不久,请大神指教!
<?php
/**
 * 精简版加密/解密类
 * @author 布衣 QQ 780998900
 * @packge SimpleTools
 * @link http://commoner.cn 布衣博客
 * @copyright http://commoner.cn
 */
class SimpleCrypt{
    /**
     * 密钥
     * 越复杂越好,但字符串长度会整加
     * @var String
     */
    private static $key = 'jdkhvxdicstui';
    /**
     * 用于生成随机字符串
     * @var array
     */
    private static $word = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','v','u','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','V','U','W','X','Y','Z');
    
    /**
     * 加密算法
     * @param $str 需要加密的字符串
     * @return String 加密后的字符串
     */
    public static function encode($str){
        
        //首次加密
        $str = base64_encode($str);
        //计算字符串长度
        $str_num = mb_strlen($str);
        //取一半长度
        $half = ceil($str_num / 2);
        //获取前半和后半字符串
        $head_str = substr($str , 0 , $half);
        $end_str = substr($str , $half , $str_num);
        //计算前半和后半加密次数
        $head_loop_num = $half < 50 ? ceil($half / 5) : ceil($half / 10);
        $end_loop_num = $str_num > 200 ? ceil($str_num / 10) : ceil($str_num /8);
        //生成随机字符串
        $head_rand_loop_num = ($head_loop_num * 10) - $head_loop_num;
        $end_rand_loop_num = ($end_loop_num + $head_loop_num) * 10 - $end_loop_num;
        $head_rand_str = null;
        $end_rand_str = null;
        //前半部分随机字符串
        for($i = 0 ; $i < $head_rand_loop_num ; $i++){
            $head_rand_str .= self::$word[rand(0 , 51) ];
        }
        //后半部分随机字符串
        for($i = 0 ; $i < $end_rand_loop_num ; $i++){
            $end_rand_str .= self::$word[rand(0 , 51)];
        }
        //前半部分内容加密
        for($i = 0 ; $i < $head_loop_num ; $i++){
            $head_str = base64_encode($head_str);
        }
        //撕毁变量
        unset($i);
        //后半部分内容加密
        for($i = 0 ; $i < $end_loop_num ; $i++){
            $end_str = base64_encode($end_str);
        }
        //合并
        $implode_str = $head_rand_str . $head_str . self::$key . base64_encode($head_loop_num) . self::$key . base64_encode($end_loop_num) . self::$key . $end_str . $end_rand_str;
        
        $result = base64_encode($implode_str);
        //以后继续,先返回
        return $result;
    }
    
    /**
     * 解密算法
     * @param $str 需解密的字符串
     * @return String 解密后字符串
     */
    public static function decode($str){
        
        //获取加密信息
        $get = explode(self::$key , base64_decode($str));
        $head_str = $get[0];
        $end_str = $get[3];
        $head_loop_num = base64_decode($get[1]);
        $end_loop_num = base64_decode($get[2]);
        //去除随机字符串的算法
        $head_rand_num = ($head_loop_num * 10) - $head_loop_num;
        $end_rand_num = ($end_loop_num + $head_loop_num) * 10 - $end_loop_num;
        //去除随机字符串,获取原文
        $head_str = substr($head_str , $head_rand_num , strlen($head_str));
        $end_str = substr($end_str , 0 , strlen($end_str) - $end_rand_num);
        //解密前半部分
        for($i = 0 ; $i < $head_loop_num ; $i++){
            $head_str = base64_decode($head_str);
        }
        //撕毁变量
        unset($i);
        //解密后半部分
        for($i = 0 ; $i < $end_loop_num ; $i++){
            $end_str = base64_decode($end_str);
        }
        //合并并解密
        $result = base64_decode($head_str . $end_str);
        
        return $result;
    }
}
?>
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール