Android和java两平台AES的互相加密解密

2023-11-10

import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;

/**
* Created by xwqaa on 2016/4/8.
* Android和java两平台AES的互相加密解密
*/
public class AES {

static final String algorithmStr = "AES/ECB/PKCS5Padding";

private static final Object TAG = "AES";

static private KeyGenerator keyGen;

static private Cipher cipher;

static boolean isInited = false;

//注意: 这里的password(秘钥必须是16位的)
private static final String keyBytes = "abcdefgabcdefg12";

private static void init() {
    try {
        /**为指定算法生成一个 KeyGenerator 对象。
         *此类提供(对称)密钥生成器的功能。
         *密钥生成器是使用此类的某个 getInstance 类方法构造的。
         *KeyGenerator 对象可重复使用,也就是说,在生成密钥后,
         *可以重复使用同一 KeyGenerator 对象来生成进一步的密钥。
         *生成密钥的方式有两种:与算法无关的方式,以及特定于算法的方式。
         *两者之间的惟一不同是对象的初始化:
         *与算法无关的初始化
         *所有密钥生成器都具有密钥长度 和随机源 的概念。
         *此 KeyGenerator 类中有一个 init 方法,它可采用这两个通用概念的参数。
         *还有一个只带 keysize 参数的 init 方法,
         *它使用具有最高优先级的提供程序的 SecureRandom 实现作为随机源
         *(如果安装的提供程序都不提供 SecureRandom 实现,则使用系统提供的随机源)。
         *此 KeyGenerator 类还提供一个只带随机源参数的 inti 方法。
         *因为调用上述与算法无关的 init 方法时未指定其他参数,
         *所以由提供程序决定如何处理将与每个密钥相关的特定于算法的参数(如果有)。
         *特定于算法的初始化
         *在已经存
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android和java两平台AES的互相加密解密 的相关文章

  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 将 Intent 包装在 LabeledIntent 中以用于显示目的

    要求 我的应用程序中有一个 共享 按钮 我需要通过 Facebook 分享 我需要选择是否安装原生 Facebook 应用程序 我们的决定是 如果未安装该应用程序 则将用户发送到 facebook com 进行分享 当前状态 我可以检测何时
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • Tip of the Week #49: Argument-Dependent Lookup

    Tip of the Week 49 Argument Dependent Lookup Originally posted as totw 49 on 2013 07 14 whatever disappearing trail of i
  • 深度学习技术在自动驾驶中的应用与挑战

    导读 深度学习技术经过近几年井喷式的发展 在很多领域都得到了广泛的应用 在自动驾驶系统中 深度学习技术也起到了至关重要的作用 同时也面临着非常多的挑战 我们一直在探索 在一个安全 稳定的自动驾驶产品中 深度学习技术应该有着怎样的作用边界 又
  • Unable to load configuration的解决方法

    最近在学Struts2 5 5 因为喜欢用最新的 并且之前没有学习过的经验 就按照一个网上的博客跟着做一个小实例 里面说直接用 Struts2 5 5中自带例子的struts xml文件 结果我就用了 然后写了一个小程序就一直报 Unabl
  • Java中的对象是什么?

    Java是一种面向对象的编程语言 它将世界视为具有属性和行为的对象的集合 Java的面向对象版本非常简单 它是该语言几乎所有内容的基础 因为它对Java非常重要 所以我将对幕后内容进行一些解释 以帮助任何不熟悉Java的人 遗产 通常 所有
  • 奇安信笔试编程题完整解析附代码

    昨天晚上奇安信笔试 两道编程题做的都不好 有紧张的元素 也有自己实力不够硬的问题 总之把两道编程题又做了一遍 思路屡清楚 下次继续努力 其实两道题非常非常简单 如果放在高中数学 基本就是送分题了 但是最近疫情期间 在家都躺退化了 算了 开搞
  • Android性能优化大法——内存优化

    作者 layz4android 内存 是Android应用的生命线 一旦在内存上出现问题 轻者内存泄漏 重者直接crash 因此一个应用保持健壮 内存这块的工作是持久战 而且从写代码这块就需要注意合理性 所以想要了解内存优化如何去做 要先从
  • jqury ajax 提交from conflict,JQuery中使用ajax提交表单遇到的问题

    今天在做维护时 遇到一段JQuery旧代码 看得很纠结 大致结构如下 html代码 javascript代码 mySubmit click function doSubmit 提交 function doSubmit myForm subm
  • 探讨STOS指令

    转载在http hi baidu com darks00n blog item 4c019ec42ad0cdcad00060b1 html 下面是一段win32 console程序 Debug版 的反汇编代码 很程式化的东西 本文不讨论这段
  • Chromium Win10 开发环境搭建

    记录chromium 开发搭建过程 系统 软件环境不同 所遇问题可能不同 但主体关键相似 仅供参考 VS 安装 安装vs2019 the version 10 0 19041 or higher Windows 10 SDK install
  • idea maven项目运行不了,好多包导不了

    其实是idea默认给你选择了自带的maven和仓库 你可以改成你自己的 使用国内镜像就可以了 先简单记录一下 到时再详细写
  • 使用php 实现生成Excel文件并导出

    在现在的项目里 不管是电商项目还是别的项目 在管理端都会有导出的功能 比方说订单表导出 用户表导出 业绩表导出 这些都需要提前生成excel表 然后在导出 实际上是在代码里生成一张excel表 然后通过下载api进行导出的 好了 先给大家讲
  • promise跟ajax区别,Promise和AJAX有什么区别?

    你感到困惑的承诺和Ajax调用 它们有点像苹果和刀子 你可以用刀切苹果 刀是可以应用于苹果的工具 但这两者是非常不同的东西 承诺是管理异步操作的工具 他们会跟踪异步操作何时完成以及结果如何 并让您与其他代码或其他异步操作协调完成以及这些结果
  • 嵌入式学习--vi的基本命令二

    嵌入式学习 vi的基本命令二 vi查找命令 vi替换命令 vi复制和剪切命令 vi查找命令 string 查找字符串string n继续向下查找 N向上查找 按回车后 光标的位置直接跳转到字符char的前面 vi替换命令 范围 s 旧str
  • 2021 字节跳动面试总监首发 1121 道 LeetCode 算法刷题笔记(含答案)

    关于算法刷题的困惑和疑问也经常听朋友们提及 这份笔记里面共包含作者刷 LeetCode 算法题后整理的数百道题 每道题均附有详细题解过程 很多人表示刷数据结构和算法题效率不高 甚是痛苦 有了这个笔记的总结 对校招和社招的算法刷题帮助之大不言
  • Windows与网络基础-1-2-虚拟机安装Windows10/ server2016

    目录 一 下载虚拟机软件 1 1新建虚拟机 1 2选择操作系统类型和windows版本 1 3自定义虚拟机名称 1 4设置最大磁盘大小 1 5配置内存和处理器 1 6挂载镜像文件 1 7进入window配置界面 二 点击进去按步骤安装即可
  • 常用邮箱工具类

    废话不多说 直接上代码 自个耍 package com example demo util import javax mail import javax mail internet InternetAddress import javax
  • 多线程基础篇(包教包会)

    文章目录 一 第一个多线程程序 1 Jconsole观察线程 2 线程休眠 sleep 二 创建线程 三 Thread类及常见方法 1 Thread 的常见构造方法 2 Thread 的几个常见属性 3 启动线程 start 4 中断线程
  • 宝塔面板忘记用户名,忘记密码怎么办?

    1 重新设置密码找回用户名 情况一 已经修改过用户名和密码 很多网上的解决方法都只是告诉我们进入SSH设置 但是很多小伙伴并不知道怎么进入SSH 导致解决该问题很麻烦 其实我们直接在阿里云中云服务器中的远程连接就可以解决这个问题 第一步 直
  • 利用security.js实现RSA加密

    在项目中遇到要对用户输入的密码进行RSA加密的需求 总结一下实现过程 div div
  • Android和java两平台AES的互相加密解密

    import java io UnsupportedEncodingException import java security InvalidKeyException import java security Key import jav