關於discuz的加密解密函式,相信大家都有所了解,該authcode函式可以說是對php界作出了重大的貢獻,真的發覺discuz這個函式寫的太精彩啦。
研究了一下這個演算法,總的來說可以歸納為以下三點:
1,動態性,同一字串使用相同的key,每次加密的密文都不一樣,而解密方法只有乙個,其實就是把解密的資訊放到了密文上面。
2,時效性,可以自己加乙個限期引數,以秒為單位,這個其實就是在密文裡加入了有效時間。
3,統一性,加密和解密都用同乙個函式,而且用了比較簡單的異或演算法。
由於該函式具有以上功能,所以適用的環境也很多,一般用於使用者登陸和開發api時防刷介面等。
// $string: 明文 或 密文// $operation:decode表示解密,其它表示加密
// $key: 密匙
// $expiry:密文有效期
function authcode($string, $operation = 'decode', $key = '', $expiry = 0)
// 用固定的演算法,打亂密匙簿,增加隨機性,好像很複雜,實際上並不會增加密文的強度
for($j = $i = 0; $i < 256; $i++)
// 核心加解密部分
for($a = $j = $i = 0; $i < $string_length; $i++)
if($operation == 'decode') else
} else
}
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...
php加密函式與解密函式
去網上找了下。php常用的加密函式有 md5加密 不可逆 crypt加密 不可逆 sha1加密 不可逆 urlencode加密 可逆 base64編碼加密 可逆 還是見識的太少,這其中我只用過md5和base64 最常用的還是md5 md5的加密雖不可逆,但一些簡單的 兩次md5加密的字串,花點錢還...