AES加密及在Android中的使用(CBC可用)

本文介绍了AES加密标准及其在Android平台上的应用,重点讲解了使用AES的CBC模式进行加密和解密的过程,并提供了示例代码。通过设置密钥和偏移量,增强了加密安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AES简介

高级加密标准(AES,Advanced Encryption Standard),是最常见的对称加密算法,对称加密是指加密和解密使用相同的密钥

在Android中使用AES

AES共有5种加密模式:
ECB模式(电码本模式)
CBC模式(密码分组链接模式)
CTR(计算器模式)
CFB(密码反馈模式)
OFB(输出反馈模式)
比较常用的是ECB和CBC模式,除密钥外,CBC模式可额外传入一个偏移量(iv值)进行加密,增强了加密算法强度。
Android中已内置了AES加解密支持,示例代码如下:

AES加密(以CBC为例)

/**
     * AES加密,返回BASE64编码后的加密字符串
     *
     * @param sSrc           -- 待加密内容
     * @param encodingFormat -- 字符串编码方式
     * @param algorithm      -- 使用的算法 算法/模式/补码方式, 目前支持ECB和CBC模式
     * @param sKey           -- 加密密钥
     * @param ivParameter    -- 偏移量,CBC模式时需要
     * @return Base64编码后的字符串
     * @throws Exception
     */
    public static String aesEncrypt(String sSrc, String encodingFormat, String algorithm, String sKey, String ivParameter) throws Exception {
   
        Cipher cipher = Cipher.getInstance(algorithm);
        byte[] raw = sKey.getBytes(encodingFormat);
        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
        //使用CBC模式,需要一个向量iv,可增加加密算法的强度
        IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes(encodingFormat));
        if (algorithm.contains("CBC")) {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值