android开发 文件数据的AES-128方式加密解密
来源:互联网 发布:淘宝店名logo在线设计 编辑:程序博客网 时间:2024/05/19 12:16
半年前写下的草稿了,首次发表,很多不足,以后要慢慢改进
目标:加密内容-->写到文件中,解密文件-->读取文件内容
加密解密方式:AES-128(尝试过使用AES-256,发现在Androidstudio中实现不了,有大神可以实现的希望多多指教)
解析xml文件:这里我使用了第三方Xstream库(这个比较方便使用,数据不多时可以使用AS本身的方法)来序列化写入,反序列化写出
例子:byte[ ] _iv 长度为16,具体字节可自定义,byte[ ] _key 长度为32,具体字节自定义。(如:byte[ ] _iv={0x11,0x32,(byte) 0xFC,..........})。
这里是传入字符串进行加密,返回字节以便序列化写入文件;
传入字符串进行解密,返回字符串再反序列化写出;可根据具体需要来修改。
private static final byte[] _iv = {。。。。。};private static final byte[] _key = {。。。。。};//解密public static String Decrypt(String sSrc){ SecretKeySpec skeySpec = new SecretKeySpec(_key, "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); IvParameterSpec iv = new IvParameterSpec(_iv); cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv); byte[] original = cipher.doFinal(HexUtils.hexStringToByte(sSrc)); return new String(original);}//加密public static byte[] EncryptToByte(String sSrc) throws Exception { SecretKeySpec skeySpec = new SecretKeySpec(_key, "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); IvParameterSpec iv = new IvParameterSpec(_iv); cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv); return cipher.doFinal(sSrc.getBytes());}
/**反序列化 * @param inputStream 输入流 * @param cls 需要反序列化的类 * @param charSetName 编码格式字符串 * @return * @throws IOException */public static <T> T Deserialize(InputStream inputStream, Class<T> cls,String charSetName) throws IOException{ Log.d("devinfo", "PMCCheckUtil-->Deserialize01" ); XStream xstream = new XStream(new DomDriver(charSetName)); // xstream.autodetectAnnotations(true); xstream.processAnnotations(cls); @SuppressWarnings("unchecked") T retobj = (T) (xstream.fromXML(inputStream)); return retobj;}
/**序列化 * @param /ms 输出流 * @param obj 需要序列化的类 * @param charSetName 编码格式字符串 * @throws IOException */public static void Serialize(OutputStream outputStream, Object obj,String charSetName) throws IOException{ XStream xstream = new XStream(new DomDriver(charSetName)); xstream.processAnnotations(obj.getClass()); xstream.toXML(obj, outputStream);}
0 0
- android开发 文件数据的AES-128方式加密解密
- Android AES 文件加密解密
- Android AES 文件加密解密
- Android AES 文件加密解密
- Android AES,RSA方式数据加密解密代码记录
- AES加密解密的数据和android的不一样效果?
- AES文件加密解密
- 文件AES加密、解密
- Android AES 加密,解密
- Android AES加密解密
- Android AES加密解密
- Android AES加密解密
- Android AES加密 解密
- Android AES加密解密
- Android AES 加密、解密
- Android--AES加密解密
- Unity3D 使用AES方式加密与解密文件
- Android端可用的AES加密/解密,已直接封装为文件加密
- 【Windows/Linux常用命令】
- 欢迎使用CSDN-markdown编辑器
- [Agile PLM Cluster WLS environme…
- [Agile PLM cluster Env]Agile PLM…
- 使用同一账户多重远程登陆Windows …
- android开发 文件数据的AES-128方式加密解密
- 【】QTP runtime error
- Android doc译文|Building Apps with Content Sharing|Sharing Simple Data
- 测试功能点
- AIX环境下安装IBM JDK 1.6
- Agile PLM Service startup
- Ad hoc testing
- SDWebImage不支持某一种图片类型的解决办法
- AutoVue软件在电子制造行业…