我正在开发一个使用Firebase作为数据库的Flutter消息应用程序。
为了加密两个用户之间发送的消息,我使用了rsa-encrypt包来在应用程序启动时生成公钥和私钥对。
使用EncryptionData类生成密钥对的代码如下:
Main.dart 大致如下所示:
为了加密或解密字符串,我们使用同一包中的encrypt()和decrypt()方法。 futureKeyPair包含公钥和私钥,可以通过使用访问。
如何在设备上安全存储私钥以实现端到端加密。 这是我在Stackoverflow上的第一个问题。 对于任何格式错误,我表示抱歉。
使用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 大致如下所示:
Main.dart 是这样的:
void main(){
EncryptFunctions encryptFunctions = new EncryptFunctions();
futureKeyPair = encryptFunctions.getKeyPair();
runApp(MyApp());
}
为了加密或解密字符串,我们使用同一包中的encrypt()和decrypt()方法。 futureKeyPair包含公钥和私钥,可以通过使用访问。
keyPair = await futureKeyPair();
如何在设备上安全存储私钥以实现端到端加密。 这是我在Stackoverflow上的第一个问题。 对于任何格式错误,我表示抱歉。