小编Jan*_*ala的帖子

非法块大小异常当使用填充密码解密时,输入长度必须是16的倍数

在我的应用程序中,我使用secretKey加密和解密数据.为此,我使用AES算法.但我在解密时遇到异常,使用密钥在三个已经加密的值中有一个值.

例外情况是:

Illegal Block Size Exception Input length must be multiple of 16 when decrypting with padded cipher.
Run Code Online (Sandbox Code Playgroud)

以下是我的代码:

功能来加强价值

public static String symmetricEncrypt(String text, String secretKey) {
    BASE64Decoder decoder = new BASE64Decoder();
    byte[] raw;
    String encryptedString;
    SecretKeySpec skeySpec;
    BASE64Encoder bASE64Encoder = new BASE64Encoder();
    byte[] encryptText = text.getBytes();
    Cipher cipher;
    try {
        raw = decoder.decodeBuffer(secretKey);
        skeySpec = new SecretKeySpec(raw, "AES");
        cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
        encryptedString = bASE64Encoder.encode(cipher.doFinal(encryptText));
    } 
    catch (Exception e) {
        e.printStackTrace();
        return "Error";
    }
    return encryptedString;
} …
Run Code Online (Sandbox Code Playgroud)

java security encryption-symmetric

7
推荐指数
1
解决办法
4万
查看次数

标签 统计

encryption-symmetric ×1

java ×1

security ×1