encryption - 如何使用 Flutter 和 Dart 执行文件加密
问题描述
我不知道在这里问我的问题是否正确。我只需要对我正在尝试构建的应用程序进行可行性研究。我选择 Flutter 是因为我可以快速创建移动应用程序。
我的应用程序将以音频文件的形式存储语音消息。它可以是 mp3 或音频格式。
为了使它只能被接收者读取,我需要使用 AES 或 e2e 加密来加密文件。
我需要知道是否可以在我的颤振应用程序中使用 Dart 加密文件。如果可能的话,我想获得有用的资源。
我试图搜索这个主题,但我只能找到关于加密字符串或文本文件的文章。
解决方案
终于找到东西了。我尝试了多种选择,包括加密包,但都是死胡同。我终于找到了这个包它可以使用 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');
推荐阅读
- java - 如何使我的数组大小成为我的 for 循环返回的结果?
- android - AdMob 欧盟同意书错误:同意书只能与自定义提供商选择一起使用
- java - 无法让 json 到 listview 工作
- mysql - MySQL查询根据特定条件从多个表中选择
- c# - 如何使“TreeListControl”显示为“TreeView”?
- java - 错误:在 TableView 列列表中检测到重复的 TableColumns
- javascript - “未捕获的 TypeError:Array.removeAt() 不是函数”,
- javascript - 如何使用相同的 js onclick 事件获取 div 内的内容
- python - 使用熊猫的 Python 数据框
- database - 如何重置管理员密码?