Android AES加密解密

 AES算法全称Advanced Encryption Standard。它是典型的“对称加密算法”,主要作用是保证私密信息不被泄露。

一、密钥

密钥是AES算法实现加密和解密的根本,因为它对明文的加密和解密需要使用同一个密钥

AES支持三种长度的密钥:128位,192位,256位。

二、填充

AES算法在对明文加密的时候,并不是把整个明文加密成一段密文,而是把明文拆分成一个独立的明文块,每一个明文块长度128bit,也就是说每个明文块为16个字节(每个字节8位)。

填充模式:

1、NoPadding:不做任何填充,但要求明文必须是16字节的整数倍。

2、PKCS5Padding(默认):如果明文块少于16个字节(128bit),在明文块末尾补足相应数量的字符,并且每个字节的值等于缺少的字符数。

例如明文:{1,a,3,c,5,k,6,8,l,o},缺少6个字节,则补足为{1,a,3,c,5,k,6,8,l,o,6,6,6,6,6,6}

3、ISO10126Padding:如果明文块少于16个字节,在明文块末尾补足相应数量的字节,最后一个字符值等于缺少的字数,其他字符填充随机数。

例如明文:{1,a,3,c,5,k,6,8,l,o},缺少6个字节,则可能补足为{1,a,3,c,5,k,6,8,l,o,2,i,9,q,7,6}。

三、模式

AES加密算法提供了不同的工作模式:

1、ECB模式(默认):电码本模式(Electronic Codebook Book)

2、CBC模式:密码分组链接模式(Cipher Block Chaining)

3、CTR模式:计算器模式(Counter)

4、CFB模式:密码反馈模式(Cipher FeedBack)

5、OFB模式:输出反馈模式(Output FeedBack)

四、AES-CBC模式 加密解密

1、aes_activity.xml布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值