Base64解密方法无法解码

时间:2020-07-30 06:14:41

标签: java encryption base64

我正在尝试解密byte[]数组中的数据。在此区块内没有问题

try {
            ByteBuffer buf = ByteBuffer.allocate(BUFFER_SIZE);
            int bytesRead = 0;
            long now;
            byte[] arr;
            String message;
            String decrypted = null;
            while (true) {
                buf = ByteBuffer.allocate(BUFFER_SIZE);
                bytesRead = machineClientSocketChannel.read(buf);
                boolean isNotTrim=CommandConstants.commandContains(command);
                logger.info("Bytes in buffer ==>"+bytesRead);
                if (bytesRead > 0) {
                    if (isRecentVersion ) {
                        try {
                            arr = trim(buf.array());
                            decrypted = decrypt(arr, knum);
                        } catch (Exception e) {
                            decrypted = null;
            
                        }
                    }

仅当我在遇到问题时使用密码调用解密方法时

public static String decrypt(byte[] decodedByte, byte[] knum) {
        try {
            byte[] decodedKey = Base64.getDecoder().decode(knum);
            SecretKeySpec key = new SecretKeySpec(Arrays.copyOf(decodedKey, 16), "AES");
            Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
            cipher.init(Cipher.DECRYPT_MODE, key);
            byte[] decrypted = cipher.doFinal(decodedByte); 
            String decString = new String(decrypted, "UTF-8");
            return decString; 
        } catch (Exception e) {
        }
        return null;
    }

这是我遇到的错误

following error occurs--->
java.lang.IllegalArgumentException: Illegal base64 character 1b
    at java.util.Base64$Decoder.decode0(Base64.java:714) ~[na:1.8.0_201]
    at java.util.Base64$Decoder.decode(Base64.java:526) ~[na:1.8.0_201]
    at at.smartfox.my.smartfoxdeviceserver.server.nio.MachineListener.decrypt(MachineListener.java:271) [smartfox-device-server-2.0.6.jar:na]
    at at.smartfox.my.smartfoxdeviceserver.server.nio.MachineListener.readMessage(MachineListener.java:170) [smartfox-device-server-2.0.6.jar:na]
    at at.smartfox.my.smartfoxdeviceserver.server.nio.MachineListener.writeMessage(MachineListener.java:91) [smartfox-device-server-2.0.6.jar:na]
    at at.smartfox.my.smartfoxdeviceserver.server.ServerController.executeCommand(ServerController.java:219) [smartfox-device-server-2.0.6.jar:na]
    at at.smartfox.my.smartfoxdeviceserver.server.ServerController$1.load(ServerController.java:54) [smartfox-device-server-2.0.6.jar:na]
    at at.smartfox.my.smartfoxdeviceserver.server.ServerController$1.load(ServerController.java:52) [smartfox-device-server-2.0.6.jar:na]
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3542) [smartfox-device-server-2.0.6.jar:na]
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2323) [smartfox-device-server-2.0.6.jar:na]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2286) [smartfox-device-server-2.0.6.jar:na]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201) [smartfox-device-server-2.0.6.jar:na]
    at com.google.common.cache.LocalCache.get(LocalCache.java:3953) [smartfox-device-server-2.0.6.jar:na]
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3957) [smartfox-device-server-2.0.6.jar:na]
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4875) [smartfox-device-server-2.0.6.jar:na]
    at at.smartfox.my.smartfoxdeviceserver.http.server.handler.CommonServiceHandler.handle(CommonServiceHandler.java:169) [smartfox-device-server-2.0.6.jar:na]
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79) [na:1.8.0_201]
    at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83) [na:1.8.0_201]
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82) [na:1.8.0_201]
    at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675) [na:1.8.0_201]
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79) [na:1.8.0_201]
    at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647) [na:1.8.0_201]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_201]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_201]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_201]

0 个答案:

没有答案
相关问题