分享下php对称加密算法的实现代码。
KEY 是之前定义的常量
Mcrypt::<span encrypt mcrypt>::<span decrypt><span defined>('ROOT') or <span exit>('Access Denied'<span><span class><span mcrypt><span public> <span static> <span function> encrypt(<span><span><span return> <span base64_encode>(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, <span md5>(<span key>), <span>, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB),<span mcrypt_rand><span public> <span static> <span function> decrypt(<span><span><span return> mcrypt_decrypt(MCRYPT_RIJNDAEL_256, <span md5>(<span key>), <span base64_decode>(<span>), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB),<span mcrypt_rand></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
xcrypt.php
立即学习“PHP免费学习笔记(深入)”;
<span><span bit aes:128 pkcs5padding linvo><span>
<span class><span xcrypt><span private> <span><span><span private> <span><span><span private> <span><span><span private> <span><span><span private> <span><span><span><span string><span>
<span public> <span function> __construct(<span>, <span> = 'cbc', <span> = "off"<span><span switch> (<span strlen>(<span><span><span case> 8:
<span>->mcrypt =<span mcrypt_des><span break><span><span case> 16:
<span>->mcrypt =<span mcrypt_rijndael_128><span break><span><span case> 32:
<span>->mcrypt =<span mcrypt_rijndael_256><span break><span><span default>:
<span die>("Key size must be 8/16/32"<span www>.jbxue.<span com><span>-><span key> = <span><span><span switch> (<span strtolower>(<span><span><span case> 'ofb':
<span>->mode =<span mcrypt_mode_ofb><span if> (<span> == 'off') <span die>('OFB must give a IV'); <span><span ofb>
<span break><span><span case> 'cfb':
<span>->mode =<span mcrypt_mode_cfb><span if> (<span> == 'off') <span die>('CFB must give a IV'); <span><span cfb>
<span break><span><span case> 'ecb':
<span>->mode =<span mcrypt_mode_ecb><span> = 'off'; <span><span ecb>
<span break><span><span case> 'cbc':
<span default>:
<span>->mode =<span mcrypt_mode_cbc><span switch> (<span strtolower>(<span><span><span case> "off":
<span>->iv = <span null><span><span break><span><span case> "auto":
<span> = <span php_os>=='WINNT' ? MCRYPT_RAND :<span mcrypt_dev_random><span>->iv = mcrypt_create_iv(mcrypt_get_block_size(<span>->mcrypt, <span>->mode), <span><span><span break><span><span default>:
<span>->iv = <span><span><span><span string><span> www.jbxue.<span com><span public> <span function> getIV(<span> = 'base64'<span><span switch> (<span><span><span case> 'base64':
<span> = <span base64_encode>(<span>-><span iv><span break><span><span case> 'hex':
<span> = <span bin2hex>(<span>-><span iv><span break><span><span case> 'bin':
<span default>:
<span> = <span>-><span iv><span return> <span><span><span><span string><span>
<span public> <span function> encrypt(<span>, <span> = 'base64'<span><span if> (<span>->mcrypt == MCRYPT_DES) <span> = <span>->_pkcs5Pad(<span><span><span if> (<span isset>(<span>-><span iv><span> = mcrypt_encrypt(<span>->mcrypt, <span>-><span key>, <span>, <span>->mode, <span>-><span iv><span else><span><span> = mcrypt_encrypt(<span>->mcrypt, <span>-><span key>, <span>, <span>-><span mode><span switch> (<span><span><span case> 'base64':
<span> = <span base64_encode>(<span><span><span break><span><span case> 'hex':
<span> = <span bin2hex>(<span><span><span break><span><span case> 'bin':
<span default>:
<span> = <span><span><span return> <span><span><span><span string><span>
<span public> <span function> decrypt(<span>, <span> = "base64"<span><span> = <span false><span><span switch> (<span><span><span case> 'base64':
<span> = <span base64_decode>(<span><span><span break><span><span case> 'hex':
<span> = <span>->_hex2bin(<span><span><span break><span><span case> 'bin':
<span default>:<span><span if> (<span> !== <span false><span><span if> (<span isset>(<span>-><span iv><span> = mcrypt_decrypt(<span>->mcrypt, <span>-><span key>, <span>, <span>->mode, <span iv>-><span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>











