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的互相加密解密 的相关文章

随机推荐

  • 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