java吧 关注:1,271,803贴子:12,780,090
  • 2回复贴,共1

关于AES加密问题 请教一下各位大神

只看楼主收藏回复

客户 要求业务数据以AES算法加密传输:
KEY_GENERATION_ALG运算法则: PBKDF2WithHmacSHA1
CIPHERMODEPADDING算法模式填充AES/CBC/PKCS5Padding
KEY_LENGTH密钥长度128位
现在他这边提供了加密密码 让先AES加密 然后base64加密
我的加密方法有问题吗


IP属地:湖北1楼2018-03-22 10:49回复
    public static String encrypt(String content, String password) {
    try {
    Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);// 创建密码器
    byte[] byteContent = content.getBytes("utf-8");
    cipher.init(Cipher.ENCRYPT_MODE, getSecretKey(password));// 初始化为加密模式的密码器
    byte[] result = cipher.doFinal(byteContent);// 加密
    return Base64.encodeBase64String(result);//通过Base64转码返回
    } catch (Exception ex) {
    }
    return null;
    }
    private static SecretKeySpec getSecretKey(final String password) {
    //返回生成指定算法密钥生成器的 KeyGenerator 对象
    KeyGenerator kg = null;
    try {
    kg = KeyGenerator.getInstance(KEY_ALGORITHM);
    //AES 要求密钥长度为 128
    kg.init(128, new SecureRandom(password.getBytes()));
    //生成一个密钥
    SecretKey secretKey = kg.generateKey();
    return new SecretKeySpec(secretKey.getEncoded(), KEY_ALGORITHM);// 转换为AES专用密钥
    } catch (NoSuchAlgorithmException ex) {
    }
    return null;
    }


    IP属地:湖北2楼2018-03-22 10:52
    回复
      2025-07-30 21:07:29
      广告
      不感兴趣
      开通SVIP免广告
      应该是没有问题的,如果不确定,可以用aes加密解密工具 http://www.it399.com/aes 测试一下结果


      IP属地:湖南来自Android客户端3楼2018-05-28 17:26
      回复