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的APIpublic 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 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 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;}


介绍完毕,项目下载!



更多相关文章

  1. Android_RxJava入门高级全攻略
  2. [转发]Android(安卓)系统稳定性 - ANR(三)
  3. Android(安卓)launchMode
  4. Android面试题整理(二)
  5. Android(安卓)Studio NDK&Jni开发--MD5加密
  6. android常用的电话操作
  7. Android之对Wifi的操作
  8. Android(安卓)TabHost设置setCurrentTab(index),当index!=0时,默认加
  9. 软件安装:android studio安装以及操作手册

随机推荐

  1. Android设备和PC设备有线USB连接双向通信
  2. android 资源res下目录使用
  3. cocos2dx程序 在android上 触碰屏幕就崩
  4. Android(安卓)笔记
  5. Listview 选项按下去黑了所有按钮的解决
  6. Android的数据存储方式
  7. Android(安卓)support library 23.2新特
  8. Android的生命周期 Start onResume
  9. android如何查看app数据(无root权限)
  10. Cocos2d-x 项目从VS移植到Android中的配