Flutter安全库插件safesecurelibs的使用
Flutter安全库插件safesecurelibs的使用

SafeSecureLibs
一个用于检查设备安全状态的Flutter包,包括检测是否被root、开发模式和危险应用。
特性
- 开发者模式检测:检查开发者选项是否已启用。
- Root访问检测:检测设备是否已被root。
- Magisk检测:识别是否安装了Magisk根管理工具。
- 危险应用检测:检测设备上是否安装了潜在有害的应用程序。
安装
在你的pubspec.yaml
文件中添加以下依赖:
dependencies:
safe_secure_libs: ^latest
然后运行:
flutter pub get
使用
以下是如何在你的Flutter应用程序中实现安全检查的完整示例:
import 'package:flutter/material.dart';
import 'package:safesecurelibs/safesecurelibs.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Security Check Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const SecurityCheckPage(),
);
}
}
class SecurityCheckPage extends StatefulWidget {
const SecurityCheckPage({super.key});
@override
State<SecurityCheckPage> createState() => _SecurityCheckPageState();
}
class _SecurityCheckPageState extends State<SecurityCheckPage> {
Map<String, dynamic> _securityStatus = {
'isDevModeEnabled': false,
'isRooted': false,
'isMagiskDetected': false,
'hasDangerousApps': false,
'isSecure': true,
'deviceInfo': {}
};
@override
void initState() {
super.initState();
_checkSecurity();
}
Future<void> _checkSecurity() async {
final status = await CheckerMethode.checkSecurityStatus();
setState(() {
_securityStatus = status;
});
}
@override
Widget build(BuildContext context) {
final deviceInfo = _securityStatus['deviceInfo'] as Map<dynamic, dynamic>? ?? {};
return Scaffold(
appBar: AppBar(
title: const Text('Security Check'),
),
body: ListView(
padding: const EdgeInsets.all(16.0),
children: [
_buildSecurityItem(
'Developer Mode',
_securityStatus['isDevModeEnabled'] ?? false,
),
_buildSecurityItem(
'Root Access',
_securityStatus['isRooted'] ?? false,
),
_buildSecurityItem(
'Magisk Detected',
_securityStatus['isMagiskDetected'] ?? false,
),
_buildSecurityItem(
'Dangerous Apps',
_securityStatus['hasDangerousApps'] ?? false,
),
_buildSecurityItem(
'Device Security',
_securityStatus['isSecure'] ?? true,
),
const SizedBox(height: 20),
Card(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Device Information',
style: Theme.of(context).textTheme.titleLarge),
const SizedBox(height: 8),
Text('Model: ${deviceInfo['model']}'),
Text('Brand: ${deviceInfo['brand']}'),
Text('Android Version: ${deviceInfo['version']}'),
Text('SDK: ${deviceInfo['sdkInt']}'),
],
),
),
),
const SizedBox(height: 20),
ElevatedButton(
onPressed: _checkSecurity,
child: const Text('Refresh Security Status'),
),
],
),
);
}
}
Widget _buildSecurityItem(String title, bool isDetected) {
return Card(
margin: const EdgeInsets.symmetric(vertical: 8.0),
child: ListTile(
title: Text(title),
trailing: Icon(
isDetected ? Icons.warning : Icons.check_circle,
color: isDetected ? Colors.red : Colors.green,
),
subtitle: Text(
isDetected ? 'Security Risk Detected' : 'Secure',
style: TextStyle(
color: isDetected ? Colors.red : Colors.green,
),
),
),
);
}
平台支持
平台 | 支持 |
---|---|
Android | ✅ |
iOS | ❌ |
Linux | ❌ |
Windows | ❌ |
安全检查详细信息
安全检查 | 状态 |
---|---|
开发者模式 | ✅ |
Root访问 | ✅ |
Magisk Root | ✅ |
危险应用 | ✅ |
整体安全 | ✅ |
设备信息
属性 | 状态 |
---|---|
制造商 | ✅ |
品牌 | ✅ |
型号 | ✅ |
设备 | ✅ |
产品 | ✅ |
Android版本 | ✅ |
SDK级别 | ✅ |
指纹 | ✅ |
开发者模式检测
检查设备设置中是否启用了开发者选项。这可能表明存在潜在的安全风险,因为开发者选项可能允许USB调试和其他敏感功能。
Root检测
执行各种检查以确定设备是否已被root,包括:
- 检查常见的root管理应用
- 扫描系统各处的su二进制文件
- 验证系统分区挂载状态
Magisk检测
专门检查Magisk根管理工具及其对系统的相关修改的存在情况。
危险应用检测
扫描是否存在潜在有害的应用程序,包括:
- Root管理应用
- 系统修改工具
- 安全绕过应用
检测到的包包括:
"com.topjohnwu.magisk",
"com.thirdparty.superuser",
"eu.chainfire.supersu",
"com.noshufou.android.su",
"com.koushikdutta.superuser",
"com.zachspong.temprootremovejb",
"com.ramdroid.appquarantine",
"com.formyhm.hideroot",
"com.amphoras.hidemyroot",
"com.saurik.substrate",
"de.robv.android.xposed",
"com.devadvance.rootcloak",
"com.devadvance.rootcloakplus",
"com.android.vending.billing.InAppBillingService.COIN",
"com.chelpus.lackypatch",
"com.kingroot.kinguser",
"com.kingo.root",
"com.smedialink.oneclickroot",
"com.zhiqupk.root.global",
"com.alephzain.framaroot",
"com.koushikdutta.rommanager",
"com.dimonvideo.luckypatcher",
"com.chelpus.luckypatcher",
"com.yellowes.su",
"com.koushikdutta.superuser",
"com.thirdparty.superuser",
"com.bitcnew.blockchain",
"com.noshufou.android.su.elite",
"com.jrummy.root.browserfree",
"com.jrummy.busybox.installer"
检测到的路径包括:
"/sbin/magisk",
"/system/xbin/magisk",
"/system/bin/magisk",
"/data/adb/magisk",
"/data/data/com.topjohnwu.magisk",
"/system/app/Superuser.apk",
"/sbin/su",
"/system/bin/su",
"/system/xbin/su",
"/data/local/xbin/su",
"/data/local/bin/su",
"/system/sd/xbin/su",
"/system/bin/failsafe/su",
"/data/local/su",
"/su/bin/su"
更多关于Flutter安全库插件safesecurelibs的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter安全库插件safesecurelibs的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
SafeSecureLibs
是一个用于 Flutter 的安全库插件,旨在帮助开发者更安全地处理敏感数据,如加密、解密、安全存储等。以下是如何在 Flutter 项目中使用 SafeSecureLibs
的基本步骤。
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 safesecurelibs
依赖。
dependencies:
flutter:
sdk: flutter
safesecurelibs: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 导入库
在你的 Dart 文件中导入 safesecurelibs
:
import 'package:safesecurelibs/safesecurelibs.dart';
3. 使用加密功能
SafeSecureLibs
提供了加密和解密的功能。以下是一个简单的示例:
void main() async {
// 初始化加密库
SafeSecureLibs.initialize();
// 加密数据
String plainText = "This is a secret message";
String encryptedText = SafeSecureLibs.encrypt(plainText);
print("Encrypted Text: $encryptedText");
// 解密数据
String decryptedText = SafeSecureLibs.decrypt(encryptedText);
print("Decrypted Text: $decryptedText");
}
4. 安全存储
SafeSecureLibs
还提供了安全存储功能,可以将敏感数据存储在安全的地方。
void main() async {
// 初始化加密库
SafeSecureLibs.initialize();
// 存储敏感数据
String key = "user_token";
String value = "12345-secure-token";
SafeSecureLibs.saveSecureData(key, value);
// 读取敏感数据
String? retrievedValue = SafeSecureLibs.getSecureData(key);
print("Retrieved Value: $retrievedValue");
// 删除敏感数据
SafeSecureLibs.deleteSecureData(key);
}
5. 处理异常
在使用加密和解密功能时,可能会遇到异常。确保你处理了这些异常以保证应用的稳定性。
void main() async {
try {
// 初始化加密库
SafeSecureLibs.initialize();
// 加密数据
String plainText = "This is a secret message";
String encryptedText = SafeSecureLibs.encrypt(plainText);
print("Encrypted Text: $encryptedText");
// 解密数据
String decryptedText = SafeSecureLibs.decrypt(encryptedText);
print("Decrypted Text: $decryptedText");
} catch (e) {
print("An error occurred: $e");
}
}