• Android5.1 文件AES加密


    密钥最低128bits
    public class FileEncryptionUtil {
    
        private static final String ALGORITHM = "AES";
        private static final String TRANSFORMATION = "AES";
    
        /**
         * 使用AES加密算法对文件进行加密。
         *
         * @param key        用于加密的密钥。.
         * @param inputFiles  要加密的输入文件。
         * @param outputFiles 将写入加密数据的输出文件。
         * @throws Exception 如果加密过程中出现错误
         */
        public static void encryptFile(String key, String inputFiles, String outputFiles) throws Exception {
            File inputFile = new File(inputFiles);
            File outputFile = new File(outputFiles);
            Key secretKey = new SecretKeySpec(key.getBytes("UTF-8"), ALGORITHM);
            Cipher cipher = Cipher.getInstance(TRANSFORMATION);
            cipher.init(Cipher.ENCRYPT_MODE, secretKey);
            FileInputStream inputStream = new FileInputStream(inputFile);
            byte[] inputBytes = new byte[(int) inputFile.length()];
            inputStream.read(inputBytes);
            byte[] outputBytes = cipher.doFinal(inputBytes);
            FileOutputStream outputStream = new FileOutputStream(outputFile);
            outputStream.write(outputBytes);
            inputStream.close();
            outputStream.close();
        }
    
        /**
         * 解密使用AES加密算法加密的文件。
         *
         * @param key        用于解密的密钥。
         * @param inputFiles  要解密的输入文件。
         * @param outputFiles 将写入解密数据的输出文件
         * @throws Exception 如果在解密过程中出现错误。
         */
        public static void decryptFile(String key, String inputFiles, String outputFiles) throws Exception {
            File inputFile = new File(inputFiles);
            File outputFile = new File(outputFiles);
            Key secretKey = new SecretKeySpec(key.getBytes("UTF-8"), ALGORITHM);
            Cipher cipher = Cipher.getInstance(TRANSFORMATION);
            cipher.init(Cipher.DECRYPT_MODE, secretKey);
            FileInputStream inputStream = new FileInputStream(inputFile);
            byte[] inputBytes = new byte[(int) inputFile.length()];
            inputStream.read(inputBytes);
            byte[] outputBytes = cipher.doFinal(inputBytes);
            FileOutputStream outputStream = new FileOutputStream(outputFile);
            outputStream.write(outputBytes);
            inputStream.close();
            outputStream.close();
        }
    }
    
  • 相关阅读:
    珠宝饰品经营小程序商城的作用是什么
    题解 Codeforces Round #811 (Div. 3)
    Ant Design Vue Pro 学习笔记(1)- 框架下载及启动
    2.2.2 redis、memcached、nginx 网络组件
    游戏中的各种简单实现方案
    关于Redis集群的数据分区和故障转移,这应该是全网最清晰的一篇
    CodeWhisperer proxy代理连不上(解决)
    [附源码]JAVA毕业设计衡师社团管理系统(系统+LW)
    华清远见上海中心22071班
    Unity小组工程实践项目《最强外卖员》策划案&纠错文档
  • 原文地址:https://blog.csdn.net/weixin_36554045/article/details/139837188