flutter rsa

由于公司要用到rsa加密,所以要刷一个rsa工具.在网上搜索,发现很多人是用native实现的.这个太笨重了,不仅仅android ,ios各自维护一份,而且还有打包的版本问题.于是我就开始折腾去找官方的加密库.然后发现rsa加密是需要用到pem文件做钥匙的.写死了.无语的一批.这样就不能动态用字符串做钥匙来加密解密.但是我看了源码后,发现还是有救的,通过拼接pem文件协议开始结束部分到钥匙上面,然后进行api调用.完美解决.工具类如下.

依赖库:

encrypt: ^3.2.0
//解密工具
class EncryptUtil {

  //公钥
  static const _publicKeyString = "";

  //密钥
  static const _privateKeyString = "";


  static Future<String> rsaEncode (String base64PlainText, {String publicKey=_publicKeyString}) async{
    var parser = RSAKeyParser();
    String rsaPublic = "-----BEGIN PUBLIC KEY-----\n$publicKey\n-----END PUBLIC KEY-----";
    RSAPublicKey rsaPublicKey = parser.parse(rsaPublic);
   // String rsaTxt =  await crypto.DYFCryptoProvider.rsaEncrypt(plainText, key);
    return Encrypter(RSA(publicKey: rsaPublicKey)).encrypt(base64PlainText).base64;
  }


  //base64PlainText base64处理的密文
  static Future<String> rsaDecode (String base64PlainText, {String privateKey=_privateKeyString}) async{
    var parser = RSAKeyParser();
    String rsaPublic = "-----BEGIN PRIVATE KEY-----\n$privateKey\n-----END PRIVATE KEY-----";
    RSAPrivateKey rsaPrivateKey = parser.parse(rsaPublic);
    // String rsaTxt =  await crypto.DYFCryptoProvider.rsaEncrypt(plainText, key);
    return Encrypter(RSA(privateKey: rsaPrivateKey)).decrypt64(base64PlainText);
  }


  static String urlEncode(String component){
    return Uri.encodeComponent(component);
  }

  static String urlDecode(String component){
    return Uri.decodeComponent(component);
  }


  
  



}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值