开源项目之Android Secrets(密码箱)
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);}
@Overridepublic 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() {@Overridepublic 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 Secrets(密码箱)相关推荐
- 使用ConnectBot开源项目在android设备上管理你的linux系统
最近,工作中有使用android通过ssh管理linux系统的需求,找到了这个ConnectBot这个开源项目https://github.com/connectbot/connectbot.http ...
- 【开源项目】Android 手写记事 App(半成品)
该项目已上传到 CSDN 的 Git 平台中 项目地址:https://code.csdn.net/gd920129/whiteboard GIT SSH:git@code.csdn.net:gd92 ...
- 开源项目之Android繁体中文输入法
一款功能强大的输入法,集合 "广东话.拼音.仓颉.速成"四种常用中文输入法,以及英文.数字及符号键盘,一按独立切换键即可变更.同一键盘可作中英文输入,无需切换,支持联想字功能,融合 ...
- 【开源项目】Android开发内置App自动升级
1.准备工作,首先需要在AndroidManifest.xml中的application中加入以下内容 <providerandroid:name="android.support.v ...
- 【开源项目】Android下自定义HASH【支持一个key对应多个value--根据key排序】
package com.peace.love.carpo_test.tool;import java.util.List; import java.util.Map; import java.util ...
- android 测试工具,Android开源项目第四篇:开发及测试工具篇
本文为那些不错的Android开源项目第四篇--开发工具篇,**主要介绍Android开发工具和测试工具相关的开源项目**. Android开源项目系列汇总已完成,包括: 1.Buck faceboo ...
- Android 开源项目及其学习
Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...
- Android开源项目分包方式学习(eoe、oschina、github)
2019独角兽企业重金招聘Python工程师标准>>> 总感觉Android中关于分包的文章很少,或者几乎可以说没有.但是合理地分包,又可以使整个项目模块化,减少包与包之间的依赖,让 ...
- [Android开源项目] GitHub开源项目总结 (转)
[Android开源项目] GitHub开源项目总结 GitHub开源项目android-styled-dialogs http://neast.cn/forum.php?mod=viewthread ...
- 优秀的 Android 开源项目
为什么80%的码农都做不了架构师?>>> 摘要 转载http://www.trinea.cn/android/android-open-source-projects-vie ...
最新文章
- python语言安装-Python安装
- 既有“基本盘”又有“增长盘”,宝盛集团的营销“生意经”
- 新版mysql授权命令,缺一不可
- Quartz简单实例
- 移除项目中的CocoaPods
- HttpServletRequest说明
- python输入数组_python怎么输入数组
- 关于 QImage::Format_Mono
- RSA签名验签学习笔记
- TechTool Pro 11 Mac(硬件检测和系统维护工具)附序列号中文版
- 网易云系列爬虫-采集歌单内歌曲热评
- 《OceanBase 数据库系统概念》首次发布,系统精准定义 OceanBase
- C++ 设置字体颜色
- 手机显示服务器维护是啥意思,手机系统维护怎么解除_手机显示系统维护是什么意思_游戏吧...
- RenéDescartes可以教给您有关设计的知识
- mysql 1273错误
- 《IBM SPSS Modeler数据与文本挖掘实战》之文本挖掘算法
- ffmpeg实现视频实时动态时间水印
- ES聚合Aggregation---原生(restful)api
- IBIS模型的那些年这些事(一)