zoukankan      html  css  js  c++  java
  • 【Java/AES】对称加密算法AES256加密解密例程

    本文例程下载:

     https://files.cnblogs.com/files/heyang78/ufo_aes_encode_decode_210927.rar

    代码:

    package ufo;
    
    import java.security.SecureRandom;
    
    import javax.crypto.Cipher;
    import javax.crypto.KeyGenerator;
    import javax.crypto.SecretKey;
    import javax.crypto.spec.SecretKeySpec;
    
    import org.apache.commons.codec.binary.Base64;
    
    public class AES_Test {
        public static void main(String... args) {
            String original="Let’s Build a Giant Airship 青海长云暗雪山";
            System.out.println("原文=	"+original);
            
            try {
                // 生产密钥
                KeyGenerator kgen = KeyGenerator.getInstance("AES");
                kgen.init(256, new SecureRandom("RND SEED".getBytes()));            
                SecretKey secretKey = kgen.generateKey();
                byte[] enCodeFormat = secretKey.getEncoded();
                SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");// 密钥,下面加密解密都要用到
                System.out.println("密钥=	"+Base64.encodeBase64String(key.getEncoded()));
                
                // 加密
                Cipher cipherEncode = Cipher.getInstance("AES");
                byte[] byteContent = original.getBytes();
                cipherEncode.init(Cipher.ENCRYPT_MODE, key);
                byte[] EncodeResults = cipherEncode.doFinal(byteContent);
                System.out.println("密文=	"+Base64.encodeBase64String(EncodeResults));
                
                // 解密
                Cipher cipherDecode = Cipher.getInstance("AES");// 创建密码器
                cipherDecode.init(Cipher.DECRYPT_MODE, key);// 初始化为解密模式的密码器
                byte[] DecodeResults = cipherDecode.doFinal(EncodeResults);
                System.out.println("解密后=	"+new String(DecodeResults));
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    输出:

    原文=    Let’s Build a Giant Airship 青海长云暗雪山
    密钥=    ehduBRkCK/qc2h02PT0UDprNGdi8H2bLLmAvUIC+7n8=
    密文=    cfA39gplPGSSIVCVRuWyaVY9Gfq2HPxvFEOfxD7n/F6b/CG8R3rERXrg70WrQ1nW
    解密后=   Let’s Build a Giant Airship 青海长云暗雪山

    pom.xml中需要引入的依赖:

            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.15</version>
            </dependency>

    END

  • 相关阅读:
    linux socket里的send和recv,阻塞与非阻塞socket、TCP与UDP在这方面的区别
    leetcode 149 Max Points on a Line
    leetcode 126 Word Ladder II
    leetcode 123 Best Time to Buy and Sell Stock III
    LC 297 Serialize and Deserialize Binary Tree
    栈和队列问题
    链表问题
    day17--权限管理和配置服务
    谷粒学院功能简介及系统架构
    day01--MybatisPlus的使用
  • 原文地址:https://www.cnblogs.com/heyang78/p/15345675.html
Copyright © 2011-2022 走看看