因为RSA加解密,前端一般只会使用加密处理,所以只探讨加密方式。
成都创新互联公司专注于江油网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供江油营销型网站建设,江油网站制作、江油网页设计、江油网站官网定制、微信小程序定制开发服务,打造江油网络公司原创品牌,更为您提供江油网站排名全网营销落地服务。
已知道公钥的情况下,进行RSA加密很简单,网上都有文章说明。
然而开发过程中存在其它情况,如下面的:
这种情况,encrypt这个库是不支持的,然后居然在网上找不到相关文章说明。刚好某项目用到此种方式,就去看有什么第三方库支持的,后来发现有个这样的库pointycastle,就尝试一下,居然可以!
1.在assets下添加加密公钥和解密私钥
2.导入encrypt库
3.创建加解密辅助类
注:分段加密参考 关于Flutter中RSA分段加密
因项目需要用到加解密,然后研究了下flutter大部分是用原生实现加解密的,但是这样不是我想要的,后面找资料发现dart有一个加密工具 encrypt 。然后研究了下,可以实现我们大部分加解密。
使用Dart实现加解密,有对称加密AES,非对称加密RSA。
工具类封装了AES加解密,RSA加解密和数字签名,RSA也实现分段加解密。
一、导包
二、工具类
上一篇 Flutter RSA加密、解密之我见一 我们了解到客户端使用公钥加密,私钥解密。那么本文我们要介绍下,客户端掌握公钥、服务端掌握私钥。客户端公钥加密,服务端私钥解密;服务端私钥加密,客户端公钥解密。
安卓可以使用java Cipher,iOS 使用Openssl这个库,对于Flutter前端来说要怎么做。
引入flutter_cipher这个库
通过以上步骤,我们就可以实现当服务端掌握私钥,客户端掌握公钥;
客户端公钥加密,服务端私钥解密;
服务端私钥加密,客户端公钥解密。
这个问题
上一篇
Flutter RSA加密、解密之我见一
原因是生成的私钥太长了
密钥长度:512、1024、2048、4096
秘钥格式:PKCS#8、PKCS#1
还有可以设置私钥密码
所以需要根据秘钥的生成的规则来使用
encrypt好像是默认使用1024长度的秘钥,其他就根据情况配置了
就是其他语言的秘钥长度要设置成1024
在yaml文件里边添加如下依赖
新建一个network_config.dart文件存放网络配置
ApiResponse是之前定义的公共接口返回实体 Flutter的Json数据解析之FlutterJsonBeanFactory插件
主要是对http异常和业务异常进行处理。
上述封装后,如果业务存在多个请求依赖调用,就需要统一的处理错误。
Dio支持自定义拦截器,继承 Interceptor ,重写 onRequest 和 onResponse 方法就行。
在初始化dio的地方,把拦截器加入dio对象的拦截器集合 dio.interceptors 中就行。
可以通过自定义的拦截器实现,也可以引入 pretty_dio_logger 库。
fastmock 上新建自己的项目,接口配置如下:
发起请求:
效果展示:
参考文章: