由於項目的需要,要寫一個能生成“授權碼”的類(授權碼主要包含項目使用的到期時間),生成的授權碼將會寫入到一個文件當中,每當項目運行的時候,會自動讀取出文件中的密文,然後使用唯一的“密鑰”來調用某個函數,對密文進行解密,從中解讀出項目的使用到期時間。
之前,自己有先試著寫了下,主要是base64+md5+反轉字符串。算法太過簡單,很容易被破解,而且也沒有能過做到“密鑰”在加解密中的重要性,故而捨之。
後來,查找了相關資料,發現,原來PHP中內置了一個功能強大的函數庫,即Mcrypt。
其實,mcrypt本身就提供了強大的加密解密方法,並且支持很多流行的公開的加密算法,如DES, TripleDES, Blowfish (默認), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB。
這裡簡單的引用下百度百科關於“加密算法”的解釋:
數據加密的基本過程就是對原來為明文的文件或數據按某種算法進行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應的密鑰之後才能顯示出本來內容,通過這樣的途徑來達到保護數據不被非法人竊取、閱讀的目的。 該過程的逆過程為解密,即將該編碼信息轉化為其原來數據的過程。
加密技術通常分為兩大類:“對稱式”和“非對稱式”。