我不知道在这里问我的问题是否合适。我只需要为我要构建的应用程序进行可行性研究。我之所以选择Flutter,是因为我允许快速创建移动应用程序。
我的应用程序将以音频文件的形式存储语音消息。它可以是mp3或音频格式。
为了使其仅可由接收者读取,我需要使用可能是AES或e2e加密的文件进行加密。
我需要知道在flutter应用程序中是否可以使用Dart加密文件。如果可能的话,我想获得有用的资源。
我尝试搜索此主题,但只能找到有关加密字符串或文本文件的文章。
最佳答案
终于找到了东西。我尝试了包括加密包在内的多个选项,但都无济于事。我终于发现this package它可以使用AES加密文件,您所需要的只是文件的路径。有据可查。我相信最好像下面所做的那样创建一个类并添加用于加密和解密的函数。
import 'dart:io';
import 'package:aes_crypt/aes_crypt.dart';
class EncryptData {
static String encrypt_file(String path) {
AesCrypt crypt = AesCrypt();
crypt.setOverwriteMode(AesCryptOwMode.on);
crypt.setPassword('my cool password');
String encFilepath;
try {
encFilepath = crypt.encryptFileSync(path);
print('The encryption has been completed successfully.');
print('Encrypted file: $encFilepath');
} catch (e) {
if (e.type == AesCryptExceptionType.destFileExists) {
print('The encryption has been completed unsuccessfully.');
print(e.message);
}
else{
return 'ERROR';
}
}
return encFilepath;
}
static String decrypt_file(String path) {
AesCrypt crypt = AesCrypt();
crypt.setOverwriteMode(AesCryptOwMode.on);
crypt.setPassword('my cool password');
String decFilepath;
try {
decFilepath = crypt.decryptFileSync(path);
print('The decryption has been completed successfully.');
print('Decrypted file 1: $decFilepath');
print('File content: ' + File(decFilepath).path);
} catch (e) {
if (e.type == AesCryptExceptionType.destFileExists) {
print('The decryption has been completed unsuccessfully.');
print(e.message);
}
else{
return 'ERROR';
}
}
return decFilepath;
}
}
现在您可以像
encrypted_file_path = EncryptData.encrypt_file('your/file/path');
关于encryption - 如何使用Flutter和Dart执行文件加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58324907/