1)android 数据加密
数据安全很重要,无论干什么都需要密码,各种账号密码一旦泄露造成财产的损失,但是android对数据安全支持很弱,并没有很好的数据保密措施。
2)eg: 在使用sharedPreferences 时,它是操作一个xml配置文件的,保存的地址在data/data/应用报名/shared_prefs/***.xml,打开文件全部都是明文,
使用数据库也不安全,数据库文件具体路径在data/data/database/***.db,如果未经加密处理,
通过sqlite的管理工具,也能轻松的查看数据库中存储的各种信息,
所以我们需要使用加密文件:
加密算法有很多种: MD5 RSA AES 3DES
1)MD5:
他是不可逆的加密算法,也就是无法解密,主要用于客户端用户密码加密,
无论原始字符串是什么,MD5加密字符串都是32位的十六进制字符串
2)RSA :
算法在客户端使用公钥加密,在服务端使用私钥解密,这样一来,即时加密的公钥被泄密,没有私钥仍然无法解密,
RSA加密的3个注意事项:
1)需要导入加密算法依赖包,bcprov-jdk16-1.46.jar 将该jar包放在当前板块的libs目录下
2)RSA加密的结果是字节数组,经过base64编码才能形成最终的加密字符串,
3)根据需求对加密的字符串做reverse倒序处理;
3) AES加密
AES是设计用来替换DES的高级加密算法,该算法是可逆算法,支持对加密字符串进行解密,解密时秘钥必须与加密时一致。
4)3DES 加密
3DES是三重数据加密算法,相当于对每个数据块应用3次DES加密算法,因为原先DES算法的秘钥长度过短,容易遭到暴力破解,所以3DES算法是通过增加秘钥的长度防范加密数据被破解,在实际开发中,3DES的秘钥必须是24位字节数组,另外,3DES加密生成的字节数组,也得通过BASE64编码为文本形式的加密字符串。
该算法与AES一样是可逆的,支持对加密字符串进行解密,解密时秘钥必须与加密时一致