小编Fre*_*rik的帖子

AES使用Base64加密

我的目标是使用AES加密字符串我使用Base64进行加密,因为AES需要一个字节数组作为输入.此外,我希望正确存储每个可能的Char(包括中文和德文符号)

    byte[] encryptedBytes = Base64.decodeBase64 ("some input");
System.out.println(new Base64().encodeToString(encryptedBytes));
Run Code Online (Sandbox Code Playgroud)

我认为应该打印"一些输入".而是打印"someinpu".我不可能使用sun.misc.*而是使用apache.commons.codec

有人知道出了什么问题吗?

java base64 aes

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

AES BadPaddingException

如果我使用错误的密钥或错误的盐进行解密,则抛出BadPaddingException.我希望返回一个不正确的字符串.doFinal()在decrypt-method中导致异常

信息 : This is just an example

Unfug: '?Ù?„SåF?V®ßs.k?·ºç€èÀH?f?ÙÉÕ

Exception in thread "main" javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    at com.sun.crypto.provider.AESCipher.engineDoFinal(DashoA13*..)
    at javax.crypto.Cipher.doFinal(DashoA13*..)
    at casino.AES.decryptString(AES.java:130)
    at casino.AES.main(AES.java:172)
Run Code Online (Sandbox Code Playgroud)
     public static void main(String[] args) throws Exception {
        //Encryption
        AES encr = new AES();   
        encr.setKey("KEY");
        encr.setSalt("SALT");
        encr.setup();
        String message = "This is just an example";
        System.out.println("Message : " + message);



        byte[] code = encr.encrypt(message);
        System.out.println("Encrypted Strinng : "+ new String(code, "UTF-8"));

        //Decryption
        AES dec = new AES(); …
Run Code Online (Sandbox Code Playgroud)

java aes

2
推荐指数
1
解决办法
6489
查看次数

标签 统计

aes ×2

java ×2

base64 ×1