encrypt decrypt 加密解密完整实例(密文可用密钥解密)
2017-09-07 21:32
525 查看
<?php error_reporting(0); header("content-Type: text/html; charset=utf-8");//输出编码 /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand((double)microtime() * 1000000); $encrypt_key=md5(rand(0, 32000)); $ctr=0; $tmp=''; for($i=0;$i<strlen($str);$i++){ $ctr=$ctr==strlen($encrypt_key)?0:$ctr; $tmp.=$encrypt_key[$ctr].($str[$i] ^ $encrypt_key[$ctr++]); } return base64_encode(passport_key($tmp,$key)); } /* *功能:对字符串进行解密处理 *参数一:需要解密的密文 *参数二:密钥 */ function passport_decrypt($str,$key){ //解密函数 $str=passport_key(base64_decode($str),$key); $tmp=''; for($i=0;$i<strlen($str);$i++){ $md5=$str[$i]; $tmp.=$str[++$i] ^ $md5; } return $tmp; } /* *辅助函数 */ function passport_key($str,$encrypt_key){ $encrypt_key=md5($encrypt_key); $ctr=0; $tmp=''; for($i=0;$i<strlen($str);$i++){ $ctr=$ctr==strlen($encrypt_key)?0:$ctr; $tmp.=$str[$i] ^ $encrypt_key[$ctr++]; } return $tmp; } $tps=$_GET["t"]; if (empty($_POST["name"])) { $str="你要加密的内容"; } else { $str=$_POST["name"];//'Q253252545Q' } if (empty($_POST["mimi"])) { $key = "q253252545q"; } else { $key=$_POST["mimi"]; } if ($tps!="Jie"){ $rez=passport_encrypt($str,$key); //加密 $tpt="Jie"; $tpz="解"; $tpx="加"; }else{ $rez=passport_decrypt($str,$key); //解密 $tpt="Jia"; $tpz="加"; $tpx="解"; } echo "<div style='border:1px solid #ccc;padding:18px;'>"; echo " 原 文:{$str}<br>密 钥:{$key}<br>$tpx 密:{$rez}"; echo "</div>"; echo "<form action='?t=$tpt' method='post' style='border:1px solid #ccc;padding:18px;' >\r\n". "<p>密钥:<input name='mimi' style='width:480px' value='$key'>\r\n</p>". "<p>内容:<input name='name' style='width:480px' value='$rez'>\r\n</p>". "<input type='submit' name='Submit' value=' $tpz 密 '>\r\n". "</form>"; ?>
encrypt decrypt 加密解密完整实例(密文可用密钥解密),可以用于加密通讯哦
相关文章推荐
- JS实现的base64加密解密完整实例
- 使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和解密
- Linux C/C++ Openssl RSA Encrypt/Decrypt(加密/解密) 简单示例教程
- Java: 如何加密解密 How to encrypt and decrypt
- java RSA 不对称加密密钥生成、加密解密实例
- encrypt加密 decrypt解密 函数
- AES Encrypt And Decrypt AES加密解密
- java RSA 不对称加密密钥生成、加密解密实例
- 利用”异或”运算的性质,对几个字符进行加密并输出密文,然后再解密。加密算法是:密钥是字符’8’,明文的每个字符和密钥进行异或运算,得到密文。密钥和密文的每个字符再次进行异或运算,重新得到明文。
- C# 加密(Encrypt) 解密(Decrypt) 操作类 java与 C# 可以相互加密解密
- RC4加密解密算法原理与完整源代码实例演示
- PHP 使用 mcrypt 扩展中的 mcrypt_encrypt() 和 mcrypt_decrypt() 对数据进行加密和解密
- php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
- C#实现的AES加密解密完整实例
- 量子通信利用量子力学原理产生密钥对信息进行加密和解密,并采用量子纠缠效应进行密钥分发,被认为是当今最安全的通信系统.有两项特性,一个是不可分割,一个是不可复制
- 报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥。
- 【加密/解密】Botan 中的 AES 加密算法实例
- 微信小程序Ruby版本加密信息解密实例
- JAVA利用RSA加密算法的长度限制问题解决方案注意: RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行。 RSA加密对明文的长度是有限制的,如