1. 程式人生 > >簡單PHP對稱加密解密方法

簡單PHP對稱加密解密方法

最近在專案中使用ThinkPHP自帶的各種對稱加密,在經過URL傳輸後出現解釋不了的情況,無論使用URL轉碼還是什麼,都不起作用,時好時壞,所以就自己隨便寫了一個加密解密的方法,希望能暫時滿足專案的需求吧,目前至少一沒有看到程式碼的人,是很難找到破解的方法的,而且滿足在網路中傳輸後可以正常解碼。同時也在這裡分享一下,希望得到大家指正,以便完善下程式碼,哈哈!

    /**
     * 簡單對稱加密演算法之加密
     * @param String $string 需要加密的字串
     * @param String $skey 加密EKY
     * @author Anyon Zou <
[email protected]
> * @date 2013-08-13 19:30 * @update 2014-10-10 10:10 * @return String */ function encode($string = '', $skey = 'cxphp') { $strArr = str_split(base64_encode($string)); $strCount = count($strArr); foreach (str_split($skey) as $key => $value) $key < $strCount && $strArr[$key].=$value; return str_replace(array('=', '+', '/'), array('O0O0O', 'o000o', 'oo00o'), join('', $strArr)); } /** * 簡單對稱加密演算法之解密 * @param String $string 需要解密的字串 * @param String $skey 解密KEY * @author Anyon Zou <
[email protected]
> * @date 2013-08-13 19:30 * @update 2014-10-10 10:10 * @return String */ function decode($string = '', $skey = 'cxphp') { $strArr = str_split(str_replace(array('O0O0O', 'o000o', 'oo00o'), array('=', '+', '/'), $string), 2); $strCount = count($strArr); foreach (str_split($skey) as $key => $value) $key <= $strCount && isset($strArr[$key]) && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0]; return base64_decode(join('', $strArr)); } echo '<pre>'; $str = '56,15123365247,54,四大古典風格'; echo "string : " . $str . " <br />"; echo "encode : " . ($enstring = encode($str)) . '<br />'; echo "decode : " . decode($enstring); die();

【update - 2015/09/31】
修復短字串解密時陣列下標越界的問題

【update - 2016/06/21】
使用ba
    /**
     * 安全URL編碼
     * @param type $data
     * @return type
     */
    function encode($data) {
        return str_replace(array('+', '/', '='), array('-', '_', ''), base64_encode(serialize($data)));
    }
    /**
     * 安全URL解碼
     * @param type $string
     * @return type
     */
    function decode($string) {
        $data = str_replace(array('-', '_'), array('+', '/'), $string);
        $mod4 = strlen($data) % 4;
        ($mod4) && $data .= substr('====', $mod4);
        return unserialize(base64_decode($data));
    }


相關推薦

簡單PHP對稱加密解密方法

最近在專案中使用ThinkPHP自帶的各種對稱加密,在經過URL傳輸後出現解釋不了的情況,無論使用URL轉碼還是什麼,都不起作用,時好時壞,所以就自己隨便寫了一個加密解密的方法,希望能暫時滿足專案的需求吧,目前至少一沒有看到程式碼的人,是很難找到破解的方法的,而且滿足在網路

一組簡單易懂的加密解密方法

話不多說 直接貼方法 加密: function encrypt($data, $key) { $key = md5($key); $x = 0; $len = strlen($data); $l =

PHP開發接口使用RSA進行加密解密方法

var_dump nbsp case trre 處理 ice func var microsoft 網絡安全問題很重要,尤其是保證數據安全,遇到很多在寫接口的程序員直接都是明文數據傳輸,在我看來這是很不專業的。本人提倡經過接口的數據都要進行加密解密之後進行使用。

php 簡單對稱加密

<?php header("content-type:text/html;charset=utf-8"); /***@param $string目標字串*@param $key 加密key*@return string */function encryption($string="",$key="c

php實現openssl RSA非對稱加密解密

今天跟第三方公司對接別人看了我寫的文件當時文件寫的是DES加密,然後我的一個回答都讓我覺得對不起別人,我說了是AES加密,當時AES和RSA加解密的原理我不瞭解導致我也誤解了別人,今天就特意去理解了一下,下面就看一下RSA非對稱的加解密吧 首先先來說一下RSA和AES的區別

記6種php 加密解密方法

<?php function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_2

PHP開發介面使用RSA進行加密解密方法

版權宣告:轉載時請標註http://blog.csdn.net/zhihua_w    https://blog.csdn.net/Zhihua_W/article/details/74002212          網路安全問題很重要,尤其是保證資料安全,遇到很多在寫介面的

C# 簡單加密解密方法

C# 簡單的加密解密方法 兩個方法如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; usi

PHP加密解密方法

加密解密方法 //字串解密加密 function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { $ckey_length = 8; // 隨機金鑰長度 取值 0-32; // 加入隨機金鑰,可以令密

基於PHP和JS的AES相互加密解密方法詳解

原地址 :https://blog.csdn.net/zhihua_w/article/details/79388297 下載地址:https://download.csdn.net/download/weixin_38615720/10908675   在最近的專案中,

php rsa加密解密例項(非對稱加密

php服務端與客戶端互動、提供開放api時,通常需要對敏感的部分api資料傳輸進行資料加密,這時候rsa非對稱加密就能派上用處了,下面通過一個例子來說明如何用php來實現資料的加密解密 1、加密解密的第一步是生成公鑰、私鑰對,私鑰加密的內容能通過公鑰解密(反過來亦可以

php加密解密

urldecode ech 項目 mode function encrypt 變化 double printf php加密和解密函數通常可以用來加密一些有用的字符串存放在數據庫裏或作為各個子系統間同步登陸的令牌,並且通過解密算法解密字符串,該函數使用了base64和MD5

C#字符串加密解密方法實例

oba div 包含 stream ren 無限級 toarray efault .get 本文實例講述了C#字符串加密解密方法。分享給大家供大家參考。具體如下: 代碼如下: #region 加密解密 static string encryptKey= “Oyea”

DESEncrypt對稱加密解密

mar cat efault ets ostream stringbu each phy === 分享一個很好用的DESEncrypt對稱加密解密的類 using System; using System.Security.Cryptography; using Syst

php rsa加密解密實例 及簽名驗證-自己實踐

date wql bio eee resource haar ted can open <?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/4/1 *

php aes加密解密類(兼容php5、php7)

bytes pri rip dom ase lee vat idea cipher <?php /** * @desc:php aes加密解密類 * @author [Lee] <[<[email protected]>]> */ class

openssl RSA非對稱加密解密

需要先了解的openssl系列函式 openssl_pkey_get_private 從證書中解析獲取私鑰,以供使用。成功,返回真實的金鑰資源識別符號(Resource ID),否則返回false openssl_pkey_get_public 從證書中解析獲取公鑰,以供使用。成功,返

java和c#的AES256加密解密方法

java CyptoClient.java中程式碼 package ***.security.crypto; import java.util.Map; import com.alibaba.fastjson.JSONObject; import com.google.common.

C#中AES256加密解密方法

/// <summary>         /// AES加密         /// </summary>         /// <param n

JS七種加密解密方法

HTML或JS加密解密     本文一共介紹了七種方法:     一:最簡單的加密解密     二:轉義字元"\"的妙用     三:使用Microsoft出品的指令碼編碼器Script Encoder來進行編碼&n