资源简介

AESUtils实现了基于AES的ECB模式,选用了zeropadding填充,数据位为128 加上密码去加解密数据,优化并实测通过

资源截图

代码片段和文件信息

package com.larcloud.sdk.encrypt;

import org.apache.commons.codec.binary.base64;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

/**
 * AES加解密工具类
 */
public class AESUtils {
    private static final String KEY_ALGORITHM = “AES“;
    private static final String DEFAULT_CIPHER_ALGORITHM = “AES/ECB/NoPadding“;//默认的加密算法

    /**
     * AES 加密操作
     *
     * @param content 待加密内容
     * @param password 加密密码
     * @return 返回base64转码后的加密数据
     */
    public static String encrypt(String content String password) {
        try {
            Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);// 创建密码器
            int blockSize = cipher.getBlockSize();

            byte[] byteContent = content.getBytes();

            int plaintextLength = byteContent.length;
            if(plaintextLength % blockSize != 0)
            {
                plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
            }

            byte[] plaintext = new byte[plaintextLength];
            System.arraycopy(byteContent 0 plaintext 0 byteContent.length);

            // 生成加密秘钥
            SecretKeySpec keySpec = getSecretKey(password);

            cipher.init(Cipher.ENCRYPT_MODE keySpec);// 初始化为加密模式的密码器

            byte[] result = cipher.doFinal(plaintext);// 加密

            return base64.encodebase64String(result);//通过base64转码返回
        } catch (Exception ex) {
            ex.p

评论

共有 条评论