美文网首页Flutter
Flutter的RSA加密(支持modules和exponent

Flutter的RSA加密(支持modules和exponent

作者: IT晴天 | 来源:发表于2019-12-29 22:58 被阅读0次

转载请注明:IT晴天

因为RSA加解密,前端一般只会使用加密处理,所以只探讨加密方式。

一、已知道公钥的情况下.

已知道公钥的情况下,进行RSA加密很简单,网上都有文章说明。

  1. 首先pubspec.yaml中添加依赖:encrypt: ^4.0.0
  2. 然后类似这样代码:
import 'package:encrypt/encrypt.dart';

static Future<String> encrypt(String text) async {
    String publicKeyString = await rootBundle.loadString('keys/public_key.pem');
    RSAPublicKey publicKey = RSAKeyParser().parse(publicKeyString);
    //创建加密器
    final encrypter = Encrypter(RSA(publicKey: publicKey));
    return encrypter.encrypt(text).base64;
}

然而开发过程中存在其它情况,如下面的:

二、通过modules和exponent来生成公钥.

这种情况,encrypt这个库是不支持的,然后居然在网上找不到相关文章说明。刚好某项目用到此种方式,就去看有什么第三方库支持的,后来发现有个这样的库pointycastle,就尝试一下,居然可以!

  1. pubspec.yaml中添加依赖:pointycastle: ^1.0.2
  2. 如下代码(因为较简单,就不作注释了):
import 'package:pointycastle/asymmetric/api.dart';

  static getPublicKey(String modules, String exponent) {
    var modulusInt = BigInt.parse(modules, radix: 16);
    var exponentInt = BigInt.parse(exponent, radix: 16);
    return RSAPublicKey(modulusInt, exponentInt);
  }

  static rsaEncrypt(String text, String modules) {
    var publicKey = getPublicKey(modules, Config.exponent);
    final encrypter = Encrypter(RSA(publicKey: publicKey));
    final res = encrypter.encrypt(text).base64;
    return res;
  }

相关文章

  • Flutter的RSA加密(支持modules和exponent

    转载请注明:IT晴天 因为RSA加解密,前端一般只会使用加密处理,所以只探讨加密方式。 一、已知道公钥的情况下. ...

  • 项目加密 RSA+DES3加密方式

    rsa加密参考网址 rsa加密参考网址 des3加密支持中文加密 des加密参考网址 加密的方式为 先将数据进行D...

  • 前端初级加密学习

    感谢王亚伟同志对本笔记RSA部分的支持。 都知道加密分为 对称加密 和 非对称加密。 1.对称加密 这种加密方式原...

  • RSA在线加密解密

    在线RSA公私钥加密解密,支持私钥加密->公钥解密、公钥加密->私钥解密,支持PKCS#1、PKCS#8格式公私钥...

  • RSA加密算法详解

    什么是RSA算法? RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是197...

  • Android数据Rsa加密

    ———————RSA非对称可逆加密———————RSA加密原理概述:RSA的安全性依赖于大数的分解,公钥和私钥都是...

  • iOS逆向与安全1.0 :RSA加密

    摘自百度百科-RSA: RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业 中RSA被...

  • RSA从原理到ctf解题(原理篇)

    简介: RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德...

  • 局1_RSA算法和SM2算法

    RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯...

  • RSA 密钥的生成

    简介 RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·...

网友评论

    本文标题:Flutter的RSA加密(支持modules和exponent

    本文链接:https://www.haomeiwen.com/subject/uwmuoctx.html