第一步,网上大部分都是让你  覆盖2个jar  ,我弄了,但是没看出效果

我是java1.8版本的,下载地址是:

https://www.oracle.com/java/technologies/javase-jce8-downloads.html

覆盖到安装jdk的目录

C:\Program Files\Java\jdk1.8.0_251\jre\lib\security\policy\unlimited

C:\Program Files\Java\jdk1.8.0_251\jre\lib\security\policy\limited

覆盖jre

C:\Program Files\Java\jre1.8.0_251\lib\security\policy\limited

C:\Program Files\Java\jre1.8.0_251\lib\security\policy\unlimited

如果你这样覆盖完了就成功了就不要往下看了

第二步,android studio 的project structure 必须指定这个jdk,因为android studio 默认安装的时候有一个比较老的jdk

这个必须改对。

第三步,下载一个支持256位加密的jar文件

https://www.bouncycastle.org/latest_releases.html

我下载了bcprov-jdk15to18-165.jar

然后加到项目中

加密之前写入:

Security.addProvider( org.bouncycastle.jce.provider.BouncyCastleProvider())

这样就可以愉快的玩  AES/CBC/PKCS7Padding

下面是AES类

class AES {//key的内容var key :String="09876543210987650000000000000000"//iv的内容var cKey:String="1234567890123456"fun decrypt(content: ByteArray):ByteArray?{Security.addProvider( org.bouncycastle.jce.provider.BouncyCastleProvider())val keyGenerator = KeyGenerator.getInstance("AES")keyGenerator.init(256)val cipher=Cipher.getInstance("AES/CBC/PKCS7Padding")val keySpec = SecretKeySpec(key.toByteArray(),"AES")val iv = IvParameterSpec(cKey.toByteArray())cipher.init(Cipher.DECRYPT_MODE,keySpec,iv)return cipher.doFinal(content)}fun encrypt(content:String):ByteArray?{Security.addProvider( org.bouncycastle.jce.provider.BouncyCastleProvider())val cipher = Cipher.getInstance("AES/CBC/PKCS7Padding")val raw = key.toByteArray(Charsets.UTF_8)val sKeySpec = SecretKeySpec(raw, "AES")val iv = IvParameterSpec(cKey.toByteArray())cipher.init(Cipher.ENCRYPT_MODE, sKeySpec, iv)val result = cipher.doFinal(content.toByteArray())return result}}

切记  如果你要256加密 必须是32位的key,否则和服务器联调的时候就会出现对不上的情况。

如果是128位加密,可以用16位的key。

测试代码

@Testfun test(){val aes= AES()val content = "my new AES Tool!"val result =aes.encrypt(content)result?.let {println()println("encrypt:${Base64.getEncoder().encodeToString(result)}")val decypt = aes.decrypt(result)decypt?.let {println("decypt:${String(decypt, Charsets.UTF_8)}")}}}

喜欢的老哥记得点赞!

安卓支持AES 256加密解密相关推荐

  1. Java AES 256加密解密示例

    Java支持许多安全的加密算法,但是其中一些功能较弱,无法在安全性要求很高的应用程序中使用.例如,数据加密标准(DES)加密算法被认为是高度不安全的.今天介绍一下AES 256加密解密. 什么是 AE ...

  2. AES 256 加密解密

    package middol.utilsimport groovy.util.logging.Slf4j import org.apache.commons.codec.binary.Base64 i ...

  3. AES在线加密解密-附AES128,192,256,CBC,CFB,ECB,OFB,PCBC各种加密

    一.AES在线加密解密:AES 128/192/256位CBC/CFB/ECB/OFB/PCBC在线加密解密|在线工具|在线助手|在线生成|在线制作 http://www.it399.com/aes ...

  4. AES 256 加密

    AES 256加密 ,需要去oracle官网下载一个插件.放到JDK里面. 无限制JCE策略文件下载地址: JDK7的下载地址: https://www.oracle.com/technetwork/ ...

  5. openssl算法 —— 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

    openssl 加密字符串的方法: 一.利用openssl命令进行BASE64编码解码(base64 encode/decode): 1. BASE64编码命令 对字符串'abc'进行base64编码 ...

  6. Delphi纯代码连SQLite数据库,同时支持数据库的加密解密

    //摘自:http://bbs.witbase.com/thread-1141-1-1.html Delphi纯代码连SQLite数据库,同时支持数据库的加密解密 Delphi纯代码连SQLite数据 ...

  7. Python - AES SHA1PRNG 加密解密总结

    Python - AES SHA1PRNG 加密解密总结 Max.Bai 2020-11 上篇文章是当时研究AES加密的时候的记录,来龙去脉可以取看这篇 python3 - AES 加密实现java中 ...

  8. 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)

    在最近的项目中,前端后台数据交互需要进行加密之后传输使用,以保证系统数据的安全.有关数据加密解密的问题,有很多种加密的方式,在这里我选择了AES的加密方式.特此写下此篇博文,总结讲述下PHP和JS进行 ...

  9. aes js加密php解密实例,基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码...

    [实例简介] 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码 [实例截图] [核心代码] 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_ ...

  10. Android AES 文件加密解密

    几番折磨终有结果,现将Demo整理出来... [java] view plain copy   package com.king.zjc; import java.io.File; import ja ...

最新文章

  1. JAVA CP936编码转utf8_对一个目录的文件从cp936转换成utf-8
  2. sap data service安装方法
  3. FuncT,TResult的使用方法(转载)
  4. VC 中字符串比较和查找
  5. body onload 控制窗口大小 html,HTML5 对各个标签的定义与规定:body的介绍
  6. php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)
  7. 百度又搞了一个“搜索”~
  8. 面向对象设计原则之7-迪米特法则
  9. .anonymous springsecurity需要登陆嘛_springSecurity之java配置篇
  10. markdown mysql高亮_博客园里Markdown支持高亮显示的语言
  11. Java之父评价C语言之父,Java之父评价C语言之父:C语言撑起了一切
  12. 建筑基坑工程设计计算与施工(一)
  13. A88xm-plus 主板采用Clover实现 m2 固态硬盘启动
  14. 计算机系统文件夹图标不见了,为何我的电脑文件夹的图标都没有了
  15. 【思科模拟器实验】三层交换机(1)
  16. 脚本小子_Lua数据类型
  17. iis信息服务器win8,win8配置iis服务器
  18. 【POJ 2484】A Funny Game(对称博弈)
  19. 编译错误:类型不匹配 mscomctl与Excel库
  20. C#回顾学习笔记四十:三层架构

热门文章

  1. 有关AirtestiOS与iproxy报错“error connecting to device“
  2. 计算机睡眠和休眠哪个更好,电脑睡眠和休眠哪个好 有什么区别
  3. 服务器冗余电源维修图纸,冗余热备份电源的电路图设计
  4. 好程序员分享面向对象概念的理解以及ES3和ES6中类的写法
  5. One-dimensional Japanese Crossword(codeforces 712A)
  6. 【游戏运营】【笔记】 谈谈对游戏运营的理解
  7. 海内外弟子追思百岁国医大师邓铁涛
  8. python图片识别文字开源库Easyocr使用
  9. java 方法缺省参数
  10. fn1-call-call-fn2-面试题