Android之AES加密

本文介绍了在Android开发中如何使用AES加密来确保数据安全性。重点讲解了AES加密的工作模式、填充模式以及初始化向量,并提供了调用加密算法的关键代码示例。通过新建Android工程和编写加密类,开发者可以实现数据的加密处理。
摘要由CSDN通过智能技术生成

在程序开发中,为了保证数据的安全性,我们常常使用加密技术。Android自带有AES加密算法,下面我们就讲讲如何使用。


目前主流的加密方式有:(对称加密)AES、DES        (非对称加密)RSA、DSA

调用AES/DES加密算法包最精要的就是下面两句话:
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);

CBC是工作模式,DES一共有电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种模式;
PKCS5Padding是填充模式,还有其它的填充模式;
cipher.init()一共有三个参数:Cipher.ENCRYPT_MODE, key, zeroIv,zeroIv就是初始化向量。
工作模式、填充模式、初始化向量这三种因素一个都不能少。否则,如果你不指定的话,那么就要程序就要调用默认实现。


1.新建Android工程


2.编写加密类

package com.sl.androidaesdemo;

import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

public class AESUtils {
    public static final String TAG = "AESUtils";

    public static String encrypt(String key, String clearText)
    {
        byte[] result = null;
        try 
        {
            byte[] rawkey = getRawKey(key.getBytes());
            result = encrypt(rawkey, clearText.getBytes());
        } 
        catch (Exception e) {
            e.printStackTrace();
        }
        String content = toHex(result);//加密后的内容
        return content;
    }

    public static String decrypt(String key, String encrypted)
    {
        try {
        	byte[] rawKey = getRawKey(key.getBytes());
			byte[] enc = toByte(encrypted);
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值