This article is from: PhP5 application example details: Use Zend framework and smarty to build a true MVC-mode application.
Author: Wang Zhigang Zhu lei
<? PHP/* a simple Encryption Class (reversible) * Static call, no need to instantiate the crypt class */class crypt {/*** basic encryption, encrypt with passport_key and key * @ Param TXT: plaintext to be encrypted * @ Param key: Key * @ return: Encrypted string */public static function passport_encrypt ($ txt, $ key) {$ encrypt_key = MD5 (RAND (0,32000); $ CTR = 0; $ TMP = ''; For ($ I = 0; $ I <strlen ($ txt); $ I ++) {$ CTR = ($ CTR = strlen ($ encrypt_key )? 0: $ CTR); $ TMP. = $ encrypt_key [$ CTR]. ($ TXT [$ I] ^ $ encrypt_key [$ CTR ++]);} return base64_encode (crypt: passport_key ($ TMP, $ key ));} public static function passport_key ($ txt, $ encrypt_key) {$ encrypt_key = MD5 ($ encrypt_key); $ CTR = 0; $ TMP = ''; For ($ I = 0; $ I <strlen ($ txt); $ I ++) {$ CTR = ($ CTR = strlen ($ encrypt_key )? 0: $ CTR); $ TMP. = $ TXT [$ I] ^ $ encrypt_key [$ CTR ++];} return $ TMP;}/*** decrypt and strip the key * @ Param TXT: password to be decrypted * @ Param key: Key * @ return: decrypted string */public static function passport_decrypt ($ txt, $ key) {$ TXT = crypt :: passport_key (base64_decode ($ txt), $ key); $ TMP = ''; For ($ I = 0; $ I <strlen ($ txt); $ I ++) {$ MD5 = $ TXT [$ I]; $ TMP. = $ TXT [++ $ I] ^ $ MD5;} return $ TMP ;}}$ TXT = "I Will Be backi"; $ key = "justfortest "; $ encrypt = crypt: passport_encrypt ($ txt, $ key); $ decrypt = crypt: passport_decrypt ($ encrypt, $ key); echo "from: $ TXT <br/> "; echo" key: $ key <br/> "; echo" encrypt: $ encrypt <br/> "; echo" decrypt: $ decrypt <br/> ";