RSA 加密与Base64 +号变空格的问题
2016-07-07 00:01
1571 查看
终于,RSA数据的加密和解密终于在我们的ios客户端和node js 服务器端测试成功了,中间迈过了不少的坑。其中最重要的就是base64加密后,数据传到服务器端会变成空格。如此Base64就不能被解码了,RSA解密就当然不成功。解决方法参考下面链接
http://www.360doc.com/content/11/0602/14/1542811_121186311.shtml。我们采用了第二种方法,就是讲服务器端收到的字符串进行空格的全部替换,替换成加号,如此就能很清爽的进行加密解密了。
我们在客户端用openssl库生成密钥对以及进行公钥加密,并且进行Base64编码后发送到服务器端。
在服务器端用了node-RSA库https://www.npmjs.com/package/node-rsa进行。这个库封装的比较好,用户自定义的比较多。在使用公钥私钥中,我们使用了最原始的方法,给key设置了各个参数。同时由于我们在客户端用的加密padding方式是pkcs1,而node-rsa库默认的是pkcs1_oaep,所以我们需要用key.setOptions的方法进行设置。
对于1028 bits的加密方法,117是每次加密的最大数,所以对于超长的字符串,我们需要循环对于字符串进行加密拼接,然后统一进行Base64加密,最后传到服务器端,刚开始还以为在服务器端也需要进行分段解密,然而我们发现,没有必要,调用key.decrye()函数后,这个自动就把全部的字符串解码出来了。还真是神奇。
http://www.360doc.com/content/11/0602/14/1542811_121186311.shtml。我们采用了第二种方法,就是讲服务器端收到的字符串进行空格的全部替换,替换成加号,如此就能很清爽的进行加密解密了。
我们在客户端用openssl库生成密钥对以及进行公钥加密,并且进行Base64编码后发送到服务器端。
在服务器端用了node-RSA库https://www.npmjs.com/package/node-rsa进行。这个库封装的比较好,用户自定义的比较多。在使用公钥私钥中,我们使用了最原始的方法,给key设置了各个参数。同时由于我们在客户端用的加密padding方式是pkcs1,而node-rsa库默认的是pkcs1_oaep,所以我们需要用key.setOptions的方法进行设置。
对于1028 bits的加密方法,117是每次加密的最大数,所以对于超长的字符串,我们需要循环对于字符串进行加密拼接,然后统一进行Base64加密,最后传到服务器端,刚开始还以为在服务器端也需要进行分段解密,然而我们发现,没有必要,调用key.decrye()函数后,这个自动就把全部的字符串解码出来了。还真是神奇。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- OpenSSL编程之RSA
- 每 172 个活动 RSA 证书中就有一个容易受到攻击
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 用ASP编写的加密和解密类
- 解密网页加密的两个方法
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- C#编写DES加密、解密类
- C#实现对文件进行加密解密的方法
- C#实现数据包加密与解密实例详解
- C# Base 64 编码/解码实现代码
- C#最简单的字符串加密解密方法
- 基于C#对用户密码使用MD5加密与解密
- VC中BASE64编码和解码使用详解
- PHP加密解密字符串汇总