前端使用jsencrypt的rsa加密算法加密信息后,在openresty搭建的网关处进行密文解密遇到的坑
1、前端使用1024位的PKCS#8公钥进行加密,加密出的密文:
H4+Ff6GHcQSHprGMhu6f9CzoO/LatTQvtPUbWx1VF2Bc9XtkQWou2Tz5pXTRv3NSIwFSQDSlOP628CiTaDhNTA0NM2ybuZI0QPIR2GC7adfA/OR6Cpjau86Rdxeo7l8DnPq9tAKg+k7m8OtioJu/MG3bK8Wua+ukvXPUKhwauT4=
在网关接收到密文后,使用PKCS#8的私钥进行密文解密,但总解密是失败。
查了很多资料,找到了问题的原因,原来是URL在传输过程中会把+号换成了空格,在网关接收到的密文:
H4 Ff6GHcQSHprGMhu6f9CzoO/LatTQvtPUbWx1VF2Bc9XtkQWou2Tz5pXTRv3NSIwFSQDSlOP628CiTaDhNTA0NM2ybuZI0QPIR2GC7adfA/OR6Cpjau86Rdxeo7l8DnPq9tAKg k7m8OtioJu/MG3bK8Wua ukvXPUKhwauT4=
可以看到所有的"+"号变成了空格。
2、解决方案:
使用lua脚本将获取到的密文进行字符串的替换,将空格换成+号:
#+号处理,空格换为+local str = string.gsub(encrypt_msg," ","+")
encrypt_msg:网关获取的密文
3、在网关处理前端信息过程中,有可能还会遇到url转义与还原问题。如后端只处理uri的转义信息,这就需要将信息进行转义后,再传给后端。openresty中的uri转义与转义还原:
ngx.escape_uri(str) url转义
ngx.unescape_uri(str) url转义还原
前端使用jsencrypt的rsa加密算法加密信息后,在openresty搭建的网关处进行密文解密遇到的坑相关推荐
- 简要分析用MD5加密算法加密信息(如有疑问,敬请留言)
一.引言 最近看了媒体的一篇关于"网络上公开叫卖个人隐私信息"报导,不法分子通过非法手段获得的个人隐私信息,其详细.准确程度简直令人瞠口结舌.在互联网飞速发展的现在,我们不难想到, ...
- RSA加密算法加密与解密过程解析
1.加密算法概述 加密算法根据内容是否可以还原分为可逆加密和非可逆加密. 可逆加密根据其加密解密是否使用的同一个密钥而可以分为对称加密和非对称加密. 所谓对称加密即是指在加密和解密时使用的是同一个密钥 ...
- 前端使用js实现Rsa的加密和解密
感谢原创!!! 原文链接:https://blog.csdn.net/XKFC1/article/details/125220301 1.先安装jsencrypt npm install jsencr ...
- Playfair加密算法和RSA加密算法介绍
Playfair加密算法 加密:1.编制密码表 2.整理明文 3.编写密文 解密:1.整理密文 2.编写明文 加密: 1.编制密码表 第一步是编制密码表.在5*5的密码表中,共有5行5列字母.第一列( ...
- 利用RSA非对称加密对文本信息进行加密
利用RSA非对称加密对文本信息进行加密 非对称加密 非对称加密即创建一对密钥对,分为公钥和私钥. 公钥即大家都能看到的秘钥,私钥即自己用的秘钥,rsa加密后密码的安全性一般取决于用户对私钥的保管. 公 ...
- AES与RSA混合加密完整实例
前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门:https://blog.csdn.net/ityouknow/article/details/80603617),文中讲到利用RSA来 ...
- rsa非对称加密(js+php)---事例2(已被采用)
非对称加密提交表单到PHP 首先用openssl工具生成一对RSA非对称密钥 附录:生成方法 RSA密钥生成命令 1.生成RSA私钥 openssl>openssl genrsa -out rs ...
- 微信退款通知req_info解密java_2018.05.24 解密微信退款结果通知中的加密信息req_info...
在微信返回的退款结果通知中,包含了一个加密信息字段req_info 微信支付文档中有提及到如何解密: 现在我们就一步一步解密得到返回的字段信息: 前提工作: 1.添加maven依赖 org.bounc ...
- 前端输入框内密码用MD5加密处理
JS-MD5官网: https://www.npmjs.com/package/js-md5 MD5在线解密/加密:http://pmd5.com/?action=getpwd# md5.js下载: ...
最新文章
- WordPress Editorial Calendar插件权限安全绕过漏洞
- 新手探索NLP(九)——文本摘要
- Windows PE资源表编程(枚举资源树)
- 需求文档可以不签字吗? 之一
- Linux如何关闭某个占用端口的进程
- java 中文 编译_java编译带中文是显示乱码的错误
- 支付宝将砸十亿支持中国女足发展:她们才是第一女子天团
- ERROR: Could not find a version that satisfies the requirement absl (from versions: none) ERROR: No
- 如何使用记事本编译并运行Java源代码
- eclipse中svn从分支合并到主干及冲突解决
- 面试-8种 常用数据结构总结
- 宝塔面板解除强制绑定手机账号限制教程
- C# 数组增加元素_C#教程推荐
- VGG16-好莱坞明星识别
- 历史演变有助于理解css布局的本质
- 土地主大威德喝茶之:外观模式
- 机器学习--处理回归问题常用算法
- 脑电溯源分析/源定位 EEG source analysis / Localization
- Osgearth设置平面投影显示
- 基于WIN32汇编实现的仿Windows计算器