js版and微信小程序版对称加密解密authcode实现方法

by pxz


发布于: 2018-05-01 所属分类: php 标签: 小程序 authcode js 加密 解密  586


<p>最近的小程序项目中要用到对称加密解密, 因为php服务端已经使用了discuz的uc_authcode方法, 于是在网上找了一个js版本的authcode, github地址是 <a href="https://github.com/AirDwing/js-airx-authcode" title="js版authcode">https://github.com/AirDwing/js-airx-authcode</a>, 经试验,js加密的, php可以解密, php加密的, js也可以解密</p> <p>但是,把这个js交给前端时, 问题出现了, 小程序端没法使用, 标准不一样,会报<code>authcode is undefined</code>错误</p> <p>经过不断地尝试, 最后成功把该js应用在了小程序前端上</p> <p>下面是我的修改方法</p> <p><strong> 1.把该authcode代码美化后,发现,该程序的结构大概是这样的</strong></p> <pre><code>(function($){ $.md5 = md5; $.authcode = authcode })(typeof window==="object"?window:this); </code></pre><p>通过传参的方式, 把authcode暴露给windows,但在小程序里面是没有windows的, 于是, 我把 <code>typeof window==="object"?window:this</code> 替换成了 <code>global</code></p> <p><strong>2.修改后发现, 报错md5 is undefined找不到mdb函数, 查看代码后发现,它内部初始化把md5暴露给md5之后, 直接当成全局函数使用了, 而在小程序里面, 把md5变量赋值值global.md5之后, 是不能当作全局函数使用的, 于是, 我在使用到md5函数的地方,增加了一行 <code>var md5 = $.md5</code></strong></p> <p>再次刷新运行, 成功加密</p> <p>最后把我修改后的代码分享给大家, github地址是 <a href="https://github.com/hubsgz/authcode" title="https://github.com/hubsgz/authcode">https://github.com/hubsgz/authcode</a></p>

发表评论

暂无评论

搜索
用户登陆