flutter rsa加密

问题描述:通常rsa加密的公钥放在客户端,私钥放在服务器,这里只对公钥简单说明

测试所需公钥,私钥或者测试自己的加密是否有问题,可以在线生成公钥私钥以及检测:https://www.bejson.com/enc/rsa/

1.rsa加密所需的库:

在 pubspec.yaml引入下面的库,记得pub get

encrypt: ^4.1.0

2.公钥存放

我的存放在资源文件下面如下:

assets/rsa/public.pem,且需要pubspec.yaml导入:- assets/rsa/public.pem

注意下public.pem格式如下:(标红的不能省略,中间的是公钥

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy3lnBWEFAJIr3mRJZM6Y
80XiFDUAXQa3tn08HLEG3TT5sVL8S6ISubExu/fL7KQz+DvCo7S0z9hMEHaUdxnF
UXiiuxwbCJLP0lLiksdDN1hh9HiCLFvVC2yFGX61GfPiqcFk8Cn/b7r/wM5CZBLZ
EobxGPTxhQ7SoexHQI33rCVWjYdQLCm1NFzarlJCnTMdxHV+7MtgcSJ3j3hXgpzq
9N1Ojc0uFZFbylQgstcEzhKe0OsS1BIF1hBGZ1DCImD9oiXrYUTdDEwoDzyYxSfe
+sky47sYRiBGWQBZfLuo3JMX6823/c4T9Gmz/BEMXRoGB8bA9w4L5G2wY+I9XdCQ
9QIDAQAB
-----END PUBLIC KEY-----
 

3.代码片段

需要导入的库:

import 'package:encrypt/encrypt.dart';
Future<String> getPubkey() async {
  final publicPem  = await rootBundle.loadString('assets/rsa/public.pem');
  var parse = RSAKeyParser().parse(publicPem);
  final encrypter = Encrypter(RSA(publicKey: parse));
  final encrypted = encrypter.encrypt(new DateTime.now().millisecondsSinceEpoch.toString());
  return encrypted.base64;//加密后内容可以在线解析或者自行解析
}
 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值