【发布时间】:2020-09-10 22:54:07
【问题描述】:
我正在开发一个使用 Firebase 作为数据库的 Flutter 消息传递应用程序。 为了加密两个用户之间发送的消息,我使用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 dart encryption rsa