联系电话:0755-27515592
最新动态:

PHP教程

你的位置: 首页>>智慧亿恩>>PHP教程

PHP加密由javascript解密的例子

点击数:12672015-07-20 11:34:25 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技

新闻摘要:一般情况我们都是php加密再由php解密了,但是我的工作就碰到了必须由php加密然后由js来解密了,这种情况我找到一站长写的例子,非常的优秀下面我们一起来看看. PHP加密函数,代码如下:

一般情况我们都是php加密再由php解密了,但是我的工作就碰到了必须由php加密然后由js来解密了,这种情况我找到一站长写的例子,非常的优秀下面我们一起来看看.

PHP加密函数,代码如下:

  1. <?php 
  2.  
  3. function strencode($string) { 
  4.     $string = base64_encode($string); 
  5.     $key = md5('just a test'); 
  6.     $len = strlen($key); 
  7.     $code = ''
  8.     for ($i = 0; $i < strlen($string); $i++) { 
  9.         $k = $i % $len
  10.         $code .= $string [$i] ^ $key [$k]; 
  11.     } 
  12.     return base64_encode($code); 
  13. //开源代码vcphp.com 
  14. echo strencode('just a test'); 
  15. ?> 

JS:解密,代码如下:

  1. <script src="md5.js"></script> 
  2. <script src="base64.js"></script> 
  3. <script> 
  4.  
  5.     function strencode(string) { 
  6.         key =md5('just a test'); 
  7.         string = Base64.decode(string);  
  8.         len = key.length;    
  9.         code = '';    
  10.         for (i = 0; i < string.length; i++) {    
  11.             k = i % len;    
  12.             code += String.fromCharCode(string.charCodeAt(i) ^ key.charCodeAt(k));    
  13.         }    
  14.         return Base64.decode(code);    
  15.     } 
  16.     alert(strencode('U1s1TFN3IQ0reTZbBgJlCA===='));    
  17. </script>  

js MD5,代码如下:

  1. /* 
  2.  * Configurable variables. You may need to tweak these to be compatible with 
  3.  * the server-side, but the defaults work in most cases. 
  4.  */ 
  5. var hexcase = 0;   /* hex output format. 0 - lowercase; 1 - uppercase        */ 
  6. var b64pad  = "";  /* base-64 pad character. "=" for strict RFC compliance   */ 
  7.  
  8. /* 
  9.  * These are the functions you'll usually want to call 
  10.  * They take string arguments and return either hex or base-64 encoded strings 
  11.  */ 
  12. function md5(s)    { 
  13.     return rstr2hex(rstr_md5(str2rstr_utf8(s))); 
  14. function b64_md5(s)    { 
  15.     return rstr2b64(rstr_md5(str2rstr_utf8(s))); 
  16. function any_md5(s, e) { 
  17.     return rstr2any(rstr_md5(str2rstr_utf8(s)), e); 
  18. function hex_hmac_md5(k, d) 
  19.     return rstr2hex(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d))); 
  20. function b64_hmac_md5(k, d) 
  21.     return rstr2b64(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d))); 
  22. function any_hmac_md5(k, d, e) 
  23.     return rstr2any(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)), e); 
  24.  
  25. /* 
  26.  * Perform a simple self-test to see if the VM is working 
  27.  */ 
  28. function md5_vm_test() 
  29.     return hex_md5("abc").toLowerCase() == "900150983cd24fb0d6963f7d28e17f72"
  30.  
  31. /* 
  32.  * Calculate the MD5 of a raw string 
  33.  */ 
  34. function rstr_md5(s) 
  35.     return binl2rstr(binl_md5(rstr2binl(s), s.length * 8)); 
  36.  
  37. /* 
  38.  * Calculate the HMAC-MD5, of a key and some data (raw strings) 
  39.  */ 
  40. function rstr_hmac_md5(key, data) 
  41.     var bkey = rstr2binl(key); 
  42.     if(bkey.length > 16) bkey = binl_md5(bkey, key.length * 8); 
  43.  
  44.     var ipad = Array(16), opad = Array(16); 
  45.     for(var i = 0; i < 16; i++) 
  46.     { 
  47.         ipad[i] = bkey[i] ^ 0x36363636; 
  48.         opad[i] = bkey[i] ^ 0x5C5C5C5C; 
  49.     } 
  50.  
  51.     var hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8); 
  52.     return binl2rstr(binl_md5(opad.concat(hash), 512 + 128)); 
  53.  
  54. /* 
  55.  * Convert a raw string to a hex string 
  56.  */ 
  57. function rstr2hex(input) 
  58.     try { 
  59.         hexcase 
  60.     } catch(e) { 
  61.         hexcase=0; 
  62.     } 
【责任编辑:(Top) 返回页面顶端
贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
亿恩科技手机站
关注亿恩科技微信

亿恩科技—企业信息化一站式服务专家


Copyright © 2008- 深圳市亿恩科技有限公司版权所有 粤ICP备15056041号

联系我们 | 常见问题 | 在线留言 | 支付方式 | 软件开发 | 我的观点 | 资质荣誉 | 服务流程