php加密函式與解密函式

2021-10-17 06:49:42 字數 1836 閱讀 4122

去網上找了下。

php常用的加密函式有

md5加密(不可逆)、crypt加密(不可逆)、sha1加密(不可逆)、urlencode加密(可逆)

base64編碼加密(可逆)

還是見識的太少,這其中我只用過md5和base64

最常用的還是md5 ,md5的加密雖不可逆,但一些簡單的 兩次md5加密的字串,花點錢還是能解密的。

為了防止解密一般都是對字串進行md5加密,在加密過得字串上加乙個固定字串,再進行md5加密。(感覺好麻煩……)

分享乙個自用的加密和解密函式

/** 

* 加密

* @param string $string 要加密或解密的字串

* @param string $operation 加密 '' 解密 decode

* @param string $key 金鑰,加密解密時保持一致

* @param int $expiry 有效時長,單位:秒

* @return string

*/function

encrypt_code

($string

,$expiry=0

,$key

='1234567890'

)for($j

=$i=0

;$i<

256;

$i++

)for($a

=$j=$i

=0;$i

<

$string_length;$i

++)$str

=$keyc

.str_replace

('=',''

,base64_encode

($result))

;// $str =htmlentities($str, ent_quotes, "utf-8"); // curl 訪問出錯

return

$str;}

/**

* 解密

* @param string $string 要加密或解密的字串

* @param string $operation 加密 '' 解密 decode

* @param string $key 金鑰,加密解密時保持一致

* @param int $expiry 有效時長,單位:秒

* @return string

*/function

encrypt_decode

($string

,$expiry=0

,$key

='1234567890'

)for($j

=$i=0

;$i<

256;

$i++

)for($a

=$j=$i

=0;$i

<

$string_length;$i

++)if(

(substr

($result,0

,10)==

0||substr

($result,0

,10)-

time()

>0)

&&substr

($result,10

,16)==

substr

(md5

(substr

($result,26

).$keyb),

0,16)

)else

}

注:加密函式與解密函式中的 $key 必須完全相同。

PHP加密解密函式

關於discuz的加密解密函式,相信大家都有所了解,該authcode函式可以說是對php界作出了重大的貢獻,真的發覺discuz這個函式寫的太精彩啦。研究了一下這個演算法,總的來說可以歸納為以下三點 1,動態性,同一字串使用相同的key,每次加密的密文都不一樣,而解密方法只有乙個,其實就是把解密的...

PHP 加密解密函式

str 需要要加密的字串 不可逆 md5 函式計算字串的 md5 雜湊 語法 md5 string,raw string 必需。規定要計算的字串 raw 可選,規定十六進製制或二進位制輸出格式,預設是32 字元十六進製制數 示例 echo md5 str e22c0235385fb885bdca3c...

PHP加密解密函式

功能 對字串進行加密處理 引數一 需要加密的內容 引數二 金鑰 function passport encrypt str,key 加密函式 srand double microtime 1000000 encrypt key md5 rand 0,32000 ctr 0 tmp for i 0 i...