安卓支持AES 256加密解密
第一步,网上大部分都是让你 覆盖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加密解密相关推荐
- Java AES 256加密解密示例
Java支持许多安全的加密算法,但是其中一些功能较弱,无法在安全性要求很高的应用程序中使用.例如,数据加密标准(DES)加密算法被认为是高度不安全的.今天介绍一下AES 256加密解密. 什么是 AE ...
- AES 256 加密解密
package middol.utilsimport groovy.util.logging.Slf4j import org.apache.commons.codec.binary.Base64 i ...
- AES在线加密解密-附AES128,192,256,CBC,CFB,ECB,OFB,PCBC各种加密
一.AES在线加密解密:AES 128/192/256位CBC/CFB/ECB/OFB/PCBC在线加密解密|在线工具|在线助手|在线生成|在线制作 http://www.it399.com/aes ...
- AES 256 加密
AES 256加密 ,需要去oracle官网下载一个插件.放到JDK里面. 无限制JCE策略文件下载地址: JDK7的下载地址: https://www.oracle.com/technetwork/ ...
- openssl算法 —— 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
openssl 加密字符串的方法: 一.利用openssl命令进行BASE64编码解码(base64 encode/decode): 1. BASE64编码命令 对字符串'abc'进行base64编码 ...
- Delphi纯代码连SQLite数据库,同时支持数据库的加密解密
//摘自:http://bbs.witbase.com/thread-1141-1-1.html Delphi纯代码连SQLite数据库,同时支持数据库的加密解密 Delphi纯代码连SQLite数据 ...
- Python - AES SHA1PRNG 加密解密总结
Python - AES SHA1PRNG 加密解密总结 Max.Bai 2020-11 上篇文章是当时研究AES加密的时候的记录,来龙去脉可以取看这篇 python3 - AES 加密实现java中 ...
- 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)
在最近的项目中,前端后台数据交互需要进行加密之后传输使用,以保证系统数据的安全.有关数据加密解密的问题,有很多种加密的方式,在这里我选择了AES的加密方式.特此写下此篇博文,总结讲述下PHP和JS进行 ...
- aes js加密php解密实例,基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码...
[实例简介] 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码 [实例截图] [核心代码] 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_ ...
- Android AES 文件加密解密
几番折磨终有结果,现将Demo整理出来... [java] view plain copy package com.king.zjc; import java.io.File; import ja ...
最新文章
- JAVA CP936编码转utf8_对一个目录的文件从cp936转换成utf-8
- sap data service安装方法
- FuncT,TResult的使用方法(转载)
- VC 中字符串比较和查找
- body onload 控制窗口大小 html,HTML5 对各个标签的定义与规定:body的介绍
- php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)
- 百度又搞了一个“搜索”~
- 面向对象设计原则之7-迪米特法则
- .anonymous springsecurity需要登陆嘛_springSecurity之java配置篇
- markdown mysql高亮_博客园里Markdown支持高亮显示的语言
- Java之父评价C语言之父,Java之父评价C语言之父:C语言撑起了一切
- 建筑基坑工程设计计算与施工(一)
- A88xm-plus 主板采用Clover实现 m2 固态硬盘启动
- 计算机系统文件夹图标不见了,为何我的电脑文件夹的图标都没有了
- 【思科模拟器实验】三层交换机(1)
- 脚本小子_Lua数据类型
- iis信息服务器win8,win8配置iis服务器
- 【POJ 2484】A Funny Game(对称博弈)
- 编译错误:类型不匹配 mscomctl与Excel库
- C#回顾学习笔记四十:三层架构
热门文章
- 有关AirtestiOS与iproxy报错“error connecting to device“
- 计算机睡眠和休眠哪个更好,电脑睡眠和休眠哪个好 有什么区别
- 服务器冗余电源维修图纸,冗余热备份电源的电路图设计
- 好程序员分享面向对象概念的理解以及ES3和ES6中类的写法
- One-dimensional Japanese Crossword(codeforces 712A)
- 【游戏运营】【笔记】 谈谈对游戏运营的理解
- 海内外弟子追思百岁国医大师邓铁涛
- python图片识别文字开源库Easyocr使用
- java 方法缺省参数
- fn1-call-call-fn2-面试题