阅读 42

uni-app app vue 小程序 RSA 加密/解密 使用 jsencrypt 踩坑(Message too long for RSA/Cannot read property 'appName')(一)

老弟的APP最近要重新改造,数据传输这一块要进行加密(虽然APP能反编译...不过有总比没有好)。

他后台用的是RSA加密,需要我uniapp的前端进行数据解密。

那就……开工吧:

 

【尝试一】

教程地址: 

 

把js下载下来,引入:

然后运行项目,结果发现报错:Cannot read property ‘appName‘

 

原因:该教程里的jsencrypt.js,不是vue版本,window等关键字都存在,不报错才怪!

 

好吧,我比较懒,也懒得去看源码,先找找有没有uniapp或者vue版本的jsencrypt.js吧:

 

 

【尝试二】

教程地址:

 

这次的jsencrypt.js是github(仓库地址:)上的uniapp版本,看着也更靠谱:

照着文中步骤一步步进行了配置:

 

然后运行起来看一下:

 

 哎哟,好像对了耶!

 

于是我又拿着老弟给我的真实数据,进行测试:

 

纳尼!!报错了:Message too long for RSA

 

好家伙,密文直接给我干成false了!看来这个也有问题鸭!

 

猜测是加密的字符串太长,导致了异常。但我还是懒,不想去看源码,继续百度!

 

 

【尝试三】

教程地址:

 

文中提到了encryptlong.js,感觉这个和我的问题正好互补,应该靠谱,试试水吧:

结果遇到了最开始的那种问题:

 

呵呵!这个js也不支持vue,难道天要亡我吗???

 

不!我命油我不油天!要不……咱们还是看源码吧!

……

……

经过一顿简单操作,终于成功了:

 

 

 那么我是如何成功的呢?

①将【尝试三】中(仓库地址:)源码里的 encryptLong 方法和 decryptLong 方法,

拷贝到【尝试二】中(仓库地址:);

②加密时调用encryptLong方法,解密时调用decryptLong方法;

 

完美,神功大成!

 

---------------------------------------------------

然而并没有完美,后来又发现问题了。详情请看第二篇:

 

 

有点饿了,拿碗排队打饭!

 

如果对您有帮助,可以的话请帮我点个赞吧,谢谢~

 

原文:https://www.cnblogs.com/donkeysmall/p/14905388.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐