貼一對(duì)php雙向加密函數(shù)

加密函數(shù):輸入?yún)?shù)字符串,返回機(jī)密字符串家肯。
Coding::tiriEncode(String)
解密函數(shù):輸入上邊函數(shù)的加密結(jié)果倦挂,反解到加密前字符串
Coding::tiriDecode(String)

特點(diǎn):
1.同一個(gè)輸入畸颅,每次輸出都不同,可以有若干個(gè)加密后的版本妒峦。無(wú)論密文什么樣重斑,都能反解回原文,無(wú)信息損失肯骇。
2.完全自己寫(xiě)的窥浪,估計(jì)網(wǎng)上沒(méi)有完全類似的。用了多年笛丙,一直挺靠譜的漾脂。

如果有同學(xué)感興趣,可以拿去自用

namespace Tiri\Widget;
class Coding{

    static function  tiriEncode($str , $factor = 0){
        $len = strlen($str);
        if(!$len){
            return;
        }
        if($factor  === 0){
            $factor = mt_rand(1, min(255 , ceil($len / 3)));
        }
        $c = $factor % 8;

        $slice = str_split($str ,$factor);
        for($i=0;$i < count($slice);$i++){
            for($j=0;$j< strlen($slice[$i]) ;$j ++){
                $slice[$i][$j] = chr(ord($slice[$i][$j]) + $c + $i);
            }
        }
        $ret = pack('C' , $factor).implode('' , $slice);
        return self::base64URLEncode($ret);
    }

    static function tiriDecode($str){  
        if($str == ''){
            return;
        }     
        $str = self::base64URLDecode($str);
        $factor =  ord(substr($str , 0 ,1));
        $c = $factor % 8;
        $entity = substr($str , 1);
        $slice = str_split($entity , $factor);
        if(!$slice){
            return false;
        }
        for($i=0;$i < count($slice); $i++){
            for($j =0 ; $j < strlen($slice[$i]); $j++){
                $slice[$i][$j] = chr(ord($slice[$i][$j]) - $c - $i );
            }
        }
        return implode($slice);
    }

    static function base64URLEncode($data) {
        return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
    }

    static function base64URLDecode($data) {
        return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
    }

    static function stringXor($str){
        for ($i = 0; $i < strlen($str); ++$i) {
            $str[$i] = chr(ord($str[$i]) ^ 0x7F);
        }
        return $str;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末胚鸯,一起剝皮案震驚了整個(gè)濱河市骨稿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖坦冠,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件形耗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡辙浑,警方通過(guò)查閱死者的電腦和手機(jī)激涤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)判呕,“玉大人倦踢,你說(shuō)我怎么就攤上這事∠啦荩” “怎么了辱挥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)边涕。 經(jīng)常有香客問(wèn)我晤碘,道長(zhǎng),這世上最難降的妖魔是什么奥吩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任哼蛆,我火速辦了婚禮蕊梧,結(jié)果婚禮上霞赫,老公的妹妹穿的比我還像新娘。我一直安慰自己肥矢,他們只是感情好端衰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著甘改,像睡著了一般旅东。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上十艾,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天抵代,我揣著相機(jī)與錄音,去河邊找鬼忘嫉。 笑死荤牍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的庆冕。 我是一名探鬼主播康吵,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼访递!你這毒婦竟也來(lái)了晦嵌?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惭载,沒(méi)想到半個(gè)月后旱函,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡描滔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年陡舅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伴挚。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡靶衍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茎芋,到底是詐尸還是另有隱情颅眶,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布田弥,位于F島的核電站涛酗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏偷厦。R本人自食惡果不足惜商叹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望只泼。 院中可真熱鬧剖笙,春花似錦、人聲如沸请唱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)十绑。三九已至聚至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間本橙,已是汗流浹背扳躬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甚亭,地道東北人贷币。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像狂鞋,于是被迫代替她去往敵國(guó)和親片择。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理骚揍,服務(wù)發(fā)現(xiàn)字管,斷路器啰挪,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進(jìn)制字符串對(duì)數(shù)據(jù)進(jìn)行解...
    上街買(mǎi)菜丶迷倒老太閱讀 1,366評(píng)論 0 20
  • php usleep() 函數(shù)延遲代碼執(zhí)行若干微秒嘲叔。 unpack() 函數(shù)從二進(jìn)制字符串對(duì)數(shù)據(jù)進(jìn)行解包亡呵。 uni...
    思?jí)鬚HP閱讀 1,984評(píng)論 1 24
  • /**ios常見(jiàn)的幾種加密方法: 普通的加密方法是講密碼進(jìn)行加密后保存到用戶偏好設(shè)置( [NSUserDefaul...
    彬至睢陽(yáng)閱讀 2,927評(píng)論 0 7
  • 新印制學(xué)校介紹單頁(yè)锰什,派人去潛在學(xué)員(或家長(zhǎng))多的地方分發(fā),是中小培訓(xùn)學(xué)校招生管理最常用的市場(chǎng)手段之一丁逝。但是大家回顧...
    龍小蝦與螃大蟹閱讀 654評(píng)論 0 1