cari
Rumahphp教程php手册PHP的加密解密字符串函数

PHP的加密解密字符串函数

Jun 13, 2016 am 09:46 AM
encryptphpkodfungsiPenyulitan dan penyahsulitanrentetanpraktikaldaripadaprogram

程序中经常使用的PHP加密解密字符串函数

代码如下:

<span /*</span><span ********************************************************************
    函数名称:encrypt
    函数作用:加密解密字符串
    使用方法:
    加密     :encrypt('str','E','nowamagic');
    解密     :encrypt('被加密过的字符串','D','nowamagic');
    参数说明:
    $string   :需要加密解密的字符串
    $operation:判断是加密还是解密:E:加密   D:解密
    $key      :加密的钥匙(密匙);
    
http://www.cnblogs.com/roucheng/
********************************************************************</span><span */</span>
    <span function</span> encrypt(<span $string</span>,<span $operation</span>,<span $key</span>=''<span )
    {
        </span><span $key</span>=<span md5</span>(<span $key</span><span );
        </span><span $key_length</span>=<span strlen</span>(<span $key</span><span );
        </span><span $string</span>=<span $operation</span>=='D'?<span base64_decode</span>(<span $string</span>):<span substr</span>(<span md5</span>(<span $string</span>.<span $key</span>),0,8).<span $string</span><span ;
        </span><span $string_length</span>=<span strlen</span>(<span $string</span><span );
        </span><span $rndkey</span>=<span $box</span>=<span array</span><span ();
        </span><span $result</span>=''<span ;
        </span><span for</span>(<span $i</span>=0;<span $i</span><=255;<span $i</span>++<span )
        {
            </span><span $rndkey</span>[<span $i</span>]=<span ord</span>(<span $key</span>[<span $i</span>%<span $key_length</span><span ]);
            </span><span $box</span>[<span $i</span>]=<span $i</span><span ;
        }
        </span><span for</span>(<span $j</span>=<span $i</span>=0;<span $i</span><256;<span $i</span>++<span )
        {
            </span><span $j</span>=(<span $j</span>+<span $box</span>[<span $i</span>]+<span $rndkey</span>[<span $i</span>])%256<span ;
            </span><span $tmp</span>=<span $box</span>[<span $i</span><span ];
            </span><span $box</span>[<span $i</span>]=<span $box</span>[<span $j</span><span ];
            </span><span $box</span>[<span $j</span>]=<span $tmp</span><span ;
        }
        </span><span for</span>(<span $a</span>=<span $j</span>=<span $i</span>=0;<span $i</span><<span $string_length</span>;<span $i</span>++<span )
        {
            </span><span $a</span>=(<span $a</span>+1)%256<span ;
            </span><span $j</span>=(<span $j</span>+<span $box</span>[<span $a</span>])%256<span ;
            </span><span $tmp</span>=<span $box</span>[<span $a</span><span ];
            </span><span $box</span>[<span $a</span>]=<span $box</span>[<span $j</span><span ];
            </span><span $box</span>[<span $j</span>]=<span $tmp</span><span ;
            </span><span $result</span>.=<span chr</span>(<span ord</span>(<span $string</span>[<span $i</span>])^(<span $box</span>[(<span $box</span>[<span $a</span>]+<span $box</span>[<span $j</span>])%256<span ]));
        }
        </span><span if</span>(<span $operation</span>=='D'<span )
        {
            </span><span if</span>(<span substr</span>(<span $result</span>,0,8)==<span substr</span>(<span md5</span>(<span substr</span>(<span $result</span>,8).<span $key</span>),0,8<span ))
            {
                </span><span return</span> <span substr</span>(<span $result</span>,8<span );
            }
            </span><span else</span><span 
            {
                </span><span return</span>''<span ;
            }
        }
        </span><span else</span><span 
        {
            </span><span return</span> <span str_replace</span>('=','',<span base64_encode</span>(<span $result</span><span ));
        }
    }</span>

 

使用方法:

<span $id</span> = 132<span ;
    
</span><span $token</span> = encrypt(<span $id</span>, 'E', 'a'<span );
    
</span><span echo</span> '加密:'.encrypt(<span $id</span>, 'E', 'a'<span );
</span><span echo</span> '<br />'<span ;
    
</span><span echo</span> '解密:'.encrypt(<span $token</span>, 'D', 'a');

 

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.