小编use*_*402的帖子

在android中使用基于密码的加密

下面的代码虽然有效,但是当我连续投掷"给定最后一块没有正确填充"时,有些时候也是如此.我觉得我在某处发生了一个小错误.你能帮我解决一下这个问题吗?

异常堆栈:

Exception in thread "main" javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:811)
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:676)
    at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:313)
    at javax.crypto.Cipher.doFinal(Cipher.java:2086)
    at MCrypt.decrypt(MCrypt.java:87)
    at MCrypt.main(MCrypt.java:21)
Run Code Online (Sandbox Code Playgroud)

我的代码:

import java.security.SecureRandom;
import java.security.spec.KeySpec;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;

public class MCrypt {

    private int iterationCount = 10000;
    private int saltLength = 8; // bytes; 64 bits
    private int keyLength = 128;

    public static void main(String[] args) throws Exception {
        MCrypt mc = new MCrypt();
        String encryptedData …
Run Code Online (Sandbox Code Playgroud)

encryption android

6
推荐指数
1
解决办法
2034
查看次数

标签 统计

android ×1

encryption ×1