PHP实现JavaScript Escape()函数加解密2015-04-03 11:26:28
( 2人已投票,[高质量] )
我们常用Javascript做简单的加密操作,幸运的是js就有原生的加密方法,当然你也可以用AES\DES加密数据,安全性提高许多,但同时你不得不载入一些扩展包,下面我们用实例先讲一下PHP的Escape加解密数据:
//javascript var txt = $(this).html(); txt = escape(txt);
这样就把数据加密了。
如果把这数据传往后右,PHP该如何还原这段代码呢?
下面提供两个有用的模拟函数原型(可以直接用、已测试)
/** * @function 解密前台Escape加密过的数据 * @param string * @return string */ function unescape($str) { $ret = ''; $len = strlen($str); for ($i = 0; $i < $len; $i ++) { if ($str[$i] == '%' && $str[$i + 1] == 'u') { $val = hexdec(substr($str, $i + 2, 4)); if ($val < 0x7f) $ret .= chr($val); else if ($val < 0x800) $ret .= chr(0xc0 | ($val >> 6)) . chr(0x80 | ($val & 0x3f)); else $ret .= chr(0xe0 | ($val >> 12)) . chr(0x80 | (($val >> 6) & 0x3f)) . chr(0x80 | ($val & 0x3f)); $i += 5; } else if ($str[$i] == '%') { $ret .= urldecode(substr($str, $i, 3)); $i += 2; } else $ret .= $str[$i]; } return$ret; } /** * PHP实现加密Escape 支持多种编码方式 * @param string * @param input coding * @param output coding */ function escape($string, $in_encoding = 'UTF-8',$out_encoding = 'UCS-2') { $return = ''; if (function_exists('mb_get_info')) { for($x = 0; $x < mb_strlen ( $string, $in_encoding ); $x ++) { $str = mb_substr ( $string, $x, 1, $in_encoding ); if (strlen ( $str ) > 1) { // 多字节字符 $return .= '%u' . strtoupper ( bin2hex ( mb_convert_encoding ( $str, $out_encoding, $in_encoding ) ) ); } else { $return .= '%' . strtoupper ( bin2hex ( $str ) ); } } } return$return; }
这样在后台就可以自由的操作前台加密数据了。
版权声明:
作者信息(Author) :雪炭网 : 花花世界
原文链接(Hyperlink):https://snowcoal.com/article/850.html
原创内容,尊重版权,转载需注明出处;商业及其他特殊用途转载需原作者同意。
原文链接(Hyperlink):https://snowcoal.com/article/850.html
原创内容,尊重版权,转载需注明出处;商业及其他特殊用途转载需原作者同意。
上一篇:关于PHP命名空间重名问题的探讨
下一篇:Dell主板驱动【主板网卡驱动】