如何在flutter中存储Keypairs?

问题描述 投票:1回答:1

我正在做一个以Firebase为数据库的Flutter消息应用程序,为了加密2个用户之间发送的消息,我已经使用了 rsa-encrypt 包来生成公钥和私钥对。

使用EncryptionData类生成密钥对的代码。

    import 'package:rsa_encrypt/rsa_encrypt.dart';
    import 'package:pointycastle/api.dart' as crypto;

    Future<crypto.AsymmetricKeyPair> futureKeyPair;
    crypto.AsymmetricKeyPair keyPair;

    class EncryptFunctions{

    Future<crypto.AsymmetricKeyPair<crypto.PublicKey,crypto.PrivateKey>> getKeyPair(){
      var helper = RsaKeyHelper();
      return helper.computeRSAKeyPair(helper.getSecureRandom());
      }
     }

Main.dart的代码是这样的

    void main(){
    EncryptFunctions encryptFunctions = new EncryptFunctions();
    futureKeyPair = encryptFunctions.getKeyPair();
    runApp(MyApp());
    }

为了加密或解密字符串,我们使用同一个包中的 encrypt()和 decrypt()方法,futureKeyPair包含公钥和私钥,可以通过使用

    keyPair = await futureKeyPair();

如何将私钥安全地存储在设备上,以完成端到端加密.这是我在Stackoverflow上的第一个问题,抱歉有任何格式错误。

android flutter encryption rsa
1个回答
1
投票

你可以使用 shared_preferences 插件来存储键和值,例如。

addStringToSF() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setString('stringValue', "abc");
}

https:/pub.devpackagesshared_preferences。

© www.soinside.com 2019 - 2024. All rights reserved.