安卓加密之AES加密base64编码

最近公司要求我完善一个测试APP,由公司的前辈搭建好主体框架,然后由我这个菜鸟来进行功能的开发。(文章只是记录一下自己遇到的问题,给以后的工作提个醒)
首先做的就是对需要发送的数据进行ASE加密,具体代码如下(因为AES加解密的工具类前辈已经写好了,所以我只需要调用方法就好了)

encrypt = AESUtils.encrypt(a.getBytes(), AESKEY.getBytes());         //AES加密

首先我的a是自定义的一个变量,赋的是json对象,因为是String类型的,所以需要先调用.getByte()方法,转换成字节型。
然后对AES加密后的数据进行base64转码(因为AES加密后显示的加密数据存在乱码,所以用base64进行转码),因为base64的包安卓有自带,所以只需要import就好了。

import android.util.Base64;

之后就是转码的代码了(这里有踩到坑),网上给的代码是这样的

String strBase64 = Base64.encodeToString(str.getBytes(), Base64.DEFAULT); 

主要看他的方法,因为它是直接用的base64,没有用AES加密过,所以他的数据类型是String类型的,要先通过调用.getByte()方法,转换成字节型。(而我傻傻的照搬的,被自己蠢哭)
而我们已经用AES加密过了,数据已经转换成了字节型,所以不需要在转化,直接使用加密后的变量就好了,这里是encrypt

strB64 = Base64.encodeToString(encrypt, Base64.DEFAULT);              //base64编码

这样之后显示的加密信息就不是乱码了。

再之后的话就是解密了,别搞错了顺序(我就搞错了,蠢哭)
先解base64的。
这是网上给的方法

String str2 = new String(Base64.decode(strBase64.getBytes(), Base64.DEFAULT)); 

因为我上面base64转码的时候ToString已经转成了String类型,所以就不用强制类型转换成String了

jstrB64=Base64.decode(strB64,Base64.DEFAULT);                   //base64解码

最后就是解AES的了,需要注意的是上面解完base64后,jstrB64是字节型的,所以在解AES时传入的参数不需要在调用.getByte()方法,转换成字节型。直接传入就好了,然后生成的数据还是字节型的,所以这个时候需要强制类型转换成String类型的

ww=new String(AESUtils.decrypt(jstrB64,AESKEY.getBytes()));     //AES解码

最后留下前辈写的AES加解密的工具类代码

package com.assem.Devi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值