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();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/30951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《计算机英语》Unit1 计算机概述

期末试卷组成 1、选择20道 2、判断20道 3、词汇翻译(单词词组,参照课后习题) 4、翻译2道(一道原题,参照作业) Unit One Computer Overview 单元1 计算机概述 algorithm n. 算法 operate …

byte[]转MultipartFile、byte[]转File一次看个够

目录 需求背景 当你需要将byte[]、MultipartFile、File实现互转时,无外乎以下场景: 保存第三方接口返回二进制流前/后端文件流上传微服务间调用文件格式转换 正如你所需要的,通过搜索引擎筛选到我的本篇文章是因为你在开发中需要将byte[]转…

k8s学习笔记(一)

configMap 一般用来存储配置信息 创建configMap 从文件中获取信息创建:kubectl create configmap my-config --from-file/tmp/k8s/user.txt 直接指定信息: kubectl create configmap my-config01 --from-literalkey1config1 --from-literalkey2confi…

深度学习之计算机视觉

神经网络简介 全连接层和卷积层的根本区别在于权重在中间层中彼此连接的方式。图5.1描述了全连接层或线性层是如何工作的。 在计算机视觉中使用线性层或全连接层的最大挑战之一是它们丢失了所有空间信息,并且就全连接层使用的权重数量而言复杂度太高。例如&#xf…

fastadmin中使用tinyint替代枚举类型的实践

枚举类型在数据库中确实是有点鸡肋,对于状态值可能发生变化的情况下尤其是麻烦,所有fastadmin中很多时候使用tinyint来替代枚举类型是非常方便的 但是tinyint值有一个缺点,就是不够直观,不能直接通过数字知道背后代表的含义,这个时候就用到了thinkphp中model的追加属性了, 类如…

鸿蒙Harmony实战—通过登录Demo了解ArkTS

ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。 ArkTS在TS的基础上主要扩展了如下能力: 基本语法:ArkTS定义…

最新版Cisco Packet Tracer思科模拟器Windows版本64位下载

Cisco Packet Tracer是思科公司推出的一款网络仿真工具,主要用于网络教学、培训和实验。它提供了一个真实的网络环境模拟平台,让用户可以设计、构建和调试网络,以及进行实时互动,从而帮助用户理解和实践网络技术。 通过 Cisco Pa…

Unity和UE免费领恐怖书本头怪兽角色模型恐怖或奇幻游戏monster适合FPS类型PBR202406202143

Unity和UE免费领恐怖书本头怪兽角色模型恐怖或奇幻游戏monster适合FPS类型PBR202406202143 Unity恐怖书本头怪兽角色模型:https://prf.hn/l/zpBqgVl UE恐怖书本头怪兽角色模型:https://prf.hn/l/4PzY1Qy 作者其他资产:https://prf.hn/l/0…

Fastjson漏洞之CVE-2022-25845

前言: 针对Fastjson之前已经介绍了,这里就不再重复了,漏洞CVE-2017-18349只能用来攻击>1.2.24版本的,CVE-2022-25845属于CVE-2017-18349的升级版,但是目前仅影响到1.2.83以下版本。CVE-2022-25845本质上是绕过了名…

SpringBoot | 实现邮件发送

运行环境: IntelliJ IDEA 2022.2.5 (Ultimate Edition) (注意:idea必须在2021版本以上)JDK17 项目目录: 该项目分为pojo,service,controller,utils四个部分, 在pojo层里面写实体内容(发邮件需要的发件人邮…

【etcd】etcd单机安装及简单操作

https://blog.csdn.net/Mr_XiMu/article/details/125026635 https://blog.csdn.net/m0_73192864/article/details/136509244 etcd在生产环境中一般为集群方式部署 etcd使用的2个默认端口号:2379和2380 2379:用于客户端通信(类似于sqlserver的1433&#x…

vscode卡顿问题处理(vue-official插件)

vue官方扩展由volar升级为vue-official,部分人的ide会变得非常卡顿,这是由于vscode本身一些问题导致,如下图作者解释: 解决方式: 通过禁用Hybrid模式,不使用tsserver来接管语言支持,卡顿会缓解…

CSS文本超限后使用省略号代替

方案一: 只显示一行,超限后使用省略号代替 .detail {overflow: hidden;text-overflow: ellipsis;white-space: nowrap; }方案二: 显示多行,到最后一行还没有显示完,则最后一行多出来的部分使用省略号代替。 .detai…

语音数据采集

语音数据采集是从音频源(如麦克风)捕获声音信号的过程,这些信号可以用于多种语音相关的应用,包括语音识别和语音处理。 语音识别是指将语音信号转换为文本或命令的过程,它通常涉及以下步骤: 语音信号捕获&…

Vulhub——Log4j、solr

文章目录 一、Log4j1.1 Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)1.2 Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645) 二、Solr2.1 Apache Solr 远程命令执行漏洞(CVE-2017-12629)2.…

[AIGC]Guava中Table、HashBasedTable和TreeBasedTable的详解

Google的Guava库在Java集合框架中增加了许多新的集合类型,其中包括Table、HashBasedTable以及TreeBasedTable。这些建议设计成可以与JDK集合共存,提供了一些我们认为有广泛用途但JDK未提供的功能。 1. Table Guava的Table代表了一个包含行、列和相应单…

C++数据格式化5 - uint转换成十六进制字符串二进制的data打印成十六进制字符串

1. 关键词2. strfmt.h3. strfmt.cpp4. 测试代码5. 运行结果6. 源码地址 1. 关键词 关键字: C 数据格式化 字符串处理 std::string int hex 跨平台 应用场景: int 型的数据打印成十六进制字符串二进制的data打印成十六进制字符串。 2. strfmt.h #p…

异步任务使用场景与实践

异步任务使用场景 根据同步/异步方式划分场景,各场景下常用的技术方案如下: 方式实现特点缺点同步HTTP RPC Cache etc.指标:RT、QPS、TPS、缓存命中率 等; 关注(准)实时数据,用户可交互1. 处…

javascript--类型检测 type of 和 instanceof

类型判断 1、typeof2、instanceof**instanceof 的原理** 3、constructor 1、typeof typeof在检测null、object、array、data的结果中都是object&#xff0c;所以无法用来区分这几个类型的区别。 <script>let a ["123",123,false,true,Symbol(1),new Date(),n…

[负载均衡详解]

负载均衡技术: 一、负载均衡集群技术的实现: 负载均衡技术类型:基于 4 层负载均衡技术和基于 7 层负载均衡技术 负载均衡实现方式:硬件负载均衡设备或者软件负载均衡 硬件负载均衡产品:F5 、深信服 、Radware 软件负载均衡产品: LVS(Linux Virtual Server)、 Hapr…