Java Cipher类解密|笔记

Posted aikongmeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Cipher类解密|笔记相关的知识,希望对你有一定的参考价值。

Cipher类为加密和解密提供密码功能
Cipher类可以构建多种加密算法,如DESAESBlowfish对称加密算法,以及RSADSADH等多种非对称加密算法
Cipher类是一个引擎类,它需要通过getInstance()工厂方法来实例化对象。

实例:

public static String decrypt(String base64Str, String key) throws Exception 
        byte[] bytes = key.getBytes(StandardCharsets.UTF_8);
        //根据指定的字节数组构建密钥
        SecretKey secretKey = new SecretKeySpec(bytes, "AES");
        //get cipher Instance
        Cipher instance = Cipher.getInstance("AES/CBC/NoPadding");
        //用密钥和一组算法参数初始化此Cipher对象
        instance.init(2, secretKey, new IvParameterSpec(bytes));
        //解密
        byte[] doFinal = instance.doFinal(Base64.getDecoder().decode(base64Str));
        return new String(doFinal, StandardCharsets.UTF_8);
    
public static void main(String []args)  
       String bs64 = "sFoOJcpVPXmeWr+WAjUmsZA/CJPPsAAGHVrGW21aPGGJxnh7P6pxXeyAKpXnWTeVRkLSjufEfSHmZXiKj9xgfjBIQK7Te4OTy+Yn+S7t7vrsA+DJm6tfWJ3jhzAwfttBmHkmfYgE87HOfXJkdg96BDI21++NqcMKBjQp4gA9iBfo/Ac1L723OpftJRXjP5W857q4S0TvBMwMKE3VxlWHo8qa0NuTt4KP4V9nqaqv8wB0EEzfH7W5Jp7y8l+X6VgZr3FVJPOfn1hW3RieYE9P+DQkN4XH6dvPNiO7Uyk3MZ+VEupkGCUFIRoe4YKQsOWipcnFD/uytWiftT22potLlpR1f31WrYb20c8aBAveFg=";
       String result=  decrypt(bs64,"awdtif20190619ti");
       System.out.println(result);

实例结果:

vmess://eyJhZGQiOiI2Ny4yMS43MC4xNjgiLCJhaWQiOiI2NCIsImhvc3QiOiJ3d3cuMzAzNzk5MzkueHl6IiwiaWQiOiI2ZTM3ZGZkMy01MzRkLTQ0ZjItODI4ZC0xNmU3YTljMGJmYjIiLCJuZXQiOiJ3cyIsInBhdGgiOiJcL2Zvb3RlcnMiLCJwb3J0Ijo0NDMsInBzIjoxMzMsInRscyI6InRscyIsInR5cGUiOiJkdGxzIiwidiI6IjIifQ==

参考文献

梁栋. Java加密与解密的艺术

以上是关于Java Cipher类解密|笔记的主要内容,如果未能解决你的问题,请参考以下文章

Java Cipher类解密|笔记

Java加密与解密笔记 Base64和数据摘要算法

Java使用非对称数据加密RSA加密解密

Java加密与解密笔记 非对称加密

RSA算法 JS加密 JAVA解密

JAVA RSA加密公私钥