想必看了Android的加密缓存(上)–JCA基础的小伙伴们,对于JCA已经有了一定的了解。那么下面我们结合具体代码,完成一次简单的字符串缓存加密和解密。如果你对Key、KeyStore、KeyGenerator、Cipher这些基础的JCA类还不太熟悉,建议你可以回顾下上一篇文章。
首先我们设计一个SecurityCache,封装SharedPreferences和基本的加密解密操作,设计成单例的形式。
1 |
|
在initKey()中,我们需要做一些初始化操作:
1 | private static final String KEY_NAME = "demo_key"; |
字符串加密
初始化完成,接着来看字符串的加密,通过生成Cipher,调用cipher.doFinal()方法,将字符串
1 | /** |
这里createEncruptCipher()方法如下:
1 |
|
字符串解密
同理来看解密的方法:
1 | /** |
解密中createDecruptCipher(IvParameterSpec ivParameterSpec)需要的IvParameterSpec正是加密时创建的Cipher的属性
1 |
|
Demo代码可以从这里获取