开源项目之Android Secrets(密码箱)
2013-06-17 21:30
85 查看
Secrets是为Android系统提供一个强大的密码保护箱,只要将各种密码放到箱子里即可,密码箱提供了导入导出的备份功能!项目如图:
效果如图:
关键源码简单分析:
介绍完毕,项目下载!
效果如图:
关键源码简单分析:
public class CSVReader { //csv 读取类
public class CSVWriter { //csv写入类密码箱操作的文件格式是csv
public class FileUtils { // csv文件操作 创建、打开、还原、备份、删除、分析、加载……等操作
public class Flip3dAnimation extends Animation { // 3D换页效果 动画
public class OS { // 操作系统 比如: public static boolean isAndroid30() { // 是否支持Android 3.0的API public static void hideSoftKeyboard(Context ctx, View view) { // 隐藏软键盘 public static void invalidateOptionsMenu(Activity activity) { // 无效的选项菜单 public static void configureSearchView(Activity activity, Menu menu) { // 搜索 public static boolean supportsScrollWheel() { // 设备是否支持滚轮或轨迹球
enum PasswordStrength { // 密码强度枚举
public class BCrypt { // 加密类 实现OpenBSD风格
public class SecurityUtils { //管理加密密钥加密和解密数据
public class Secret implements Serializable { // 封装密码
public class SaveService extends Service { // 保存服务 关键服务 方法如下:
public static synchronized void execute(Context context, List<Secret> secrets, Cipher cipher, byte[] salt, int rounds) { //后台队列保存密钥 SaveService.secrets = secrets; SaveService.cipher = cipher; SaveService.salt = salt; SaveService.rounds = rounds; Intent intent = new Intent(context, SaveService.class); context.startService(intent); }
@Override public int onStartCommand(Intent intent, int flags, final int startId) { // 关键操作 synchronized (SaveService.class) { final List<Secret> secrets = SaveService.secrets; final Cipher cipher = SaveService.cipher; final File file = getFileStreamPath(FileUtils.SECRETS_FILE_NAME); final byte[] salt = SaveService.salt; final int rounds = SaveService.rounds; SaveService.secrets = null; SaveService.cipher = null; SaveService.salt = null; SaveService.rounds = 0; if (null != secrets && null != cipher) { new Thread(new Runnable() { @Override public void run() { int r = FileUtils.saveSecrets(SaveService.this, file, cipher, salt, rounds, secrets); // 保存成功否则刷新 if (0 == r) backupManager.dataChanged(); // 不存在则备份 if (!FileUtils.restoreFileExist()) FileUtils.backupSecrets(SaveService.this, cipher, salt, rounds, secrets); stopSelf(startId); } }, "saveSecrets").start(); } else { stopSelf(startId); } } return START_STICKY; }
介绍完毕,项目下载!
相关文章推荐
- Android 开源项目NineOldAnimations详解
- Android常用开源项目
- 2015最火十大Android开源项目,是个程序员你就该看看!《IT蓝豹》
- Android开发者必须深入学习的10个应用开源项目
- 直接拿来用!最火的Android开源项目整理
- Android开源项目--分类汇总
- 安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发的每个领域
- Android 类似于ArcMenu(github上开源项目)的自定义多个按钮视图
- Android优秀开源项目(二)
- GitHub 优秀的 Android 开源项目-参考自网络
- 比较好的android 开源项目
- Android开源项目第三篇——优秀项目篇
- 供大家学习的Android开源项目
- Android优秀开源项目
- 优秀的android开源项目
- Android常用开源项目(四十六)
- (android 开源项目android pn) 搭建服务器和Android app
- github上的优秀android开源项目
- Android 第三方库--2017年Android开源项目及库汇总
- android 开源项目(城市定位)