Android常用工具之加密方式
2017-07-19 10:08
501 查看
公司中很多文件需要加密,但是每个公司的加密方式也不相同,基础的代码是相同的。
首先定义加密方式:
private final static byte[] rawkey = new byte[]{ };
private final static byte[] iv = new byte[]{};
加密解密过程
首先定义加密方式:
private final static byte[] rawkey = new byte[]{ };
private final static byte[] iv = new byte[]{};
加密解密过程
//加密
private static byte[] encrypt(byte[] clear) throws GeneralSecurityException { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(rawkey, "AES"), new IvParameterSpec(iv)); return cipher.doFinal(clear); } //解密 private static byte[] decrypt(byte[] encrypted) throws GeneralSecurityException { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(rawkey, "AES"), new IvParameterSpec(iv)); return cipher.doFinal(encrypted); } //解密 public static void decrypt(String fileInputPath, String fileOutputPath) throws GeneralSecurityException { FileInputStream fis = null; FileOutputStream fw = null; try { fis = new FileInputStream(fileInputPath); fw = new FileOutputStream(fileOutputPath); byte[] bytes = new byte[fis.available()]; fis.read(bytes); fw.write(decrypt(bytes)); fw.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (fis != null) fis.close(); if (fw != null) fw.close(); } catch (IOException ignored) { } } } //加密 public static void encrypt(String fileInputPath, String fileOutputPath) throws GeneralSecurityException { FileInputStream fr = null; FileOutputStream fos = null; try { File f = new File(fileInputPath); fr = new FileInputStream(f); byte[] bytes = new byte[(int) f.length()]; fr.read(bytes, 0, bytes.length); fos = new FileOutputStream(fileOutputPath); fos.write(encrypt(bytes)); } catch (IOException e) { e.printStackTrace(); } finally { try { if (fr != null) fr.close(); if (fos != null) fos.close(); } catch (IOException ignored) { } } } //解密 public static String decrypt(String fileInputPath) throws GeneralSecurityException { FileInputStream fis = null; String ret = null; try { fis = new FileInputStream(fileInputPath); byte[] bytes = new byte[fis.available()]; fis.read(bytes); ret = new String(decrypt(bytes)); } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) try { fis.close(); } catch (IOException ignored) { } } return ret; }
相关文章推荐
- DES、RSA(分段加解密) Android中常用的两种加密方式
- Android常用的数据加密方式代码详解
- 【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】校验数据传输的完整性常用方式
- Android 常用的数据加密方式
- android中常用的文本加密方式总结
- Android 常用的数据加密方式
- Android开发常用的插件及工具
- Android开发中一些常用的工具方法
- Android请求服务器常用方式
- Android常用的工具类(来自git)
- Android开发之常用的loading等待效果实现,仿微博等待动画。两种实现方式详解
- android apk 逆向中常用工具一览
- Android 混淆代码学习以及Android加密工具--APKProtect的使用
- Android常用工具类
- 给初学者的 Android 加密工具
- 常用的数据加密方式
- Android在Eclipse工具搭建测试框架方式
- Android 开发常用工具
- Android Gradle 常用使用场景实现方式的总结
- 剖析Android Traceview效率工具及两种建SDcard方式