zoukankan      html  css  js  c++  java
  • 对称加密

    AES:

    package com.example.wuji.jiami;
    import com.sun.org.apache.xml.internal.security.utils.Base64;
    import javax.crypto.Cipher;
    import javax.crypto.spec.SecretKeySpec;
    /**
     * 对称加密 AES
     */
    public class Aes {
        public static void main(String[] args) throws Exception {
            String jin = "jinxudong";
            //DES加密 只允许密钥是16个字节的
            String key = "1234567890asdfgh";
            String sf = "AES";
            String str = jiami(key, sf, jin);
            System.out.println("AES加密后:" + str);
            str = jiemi(key, sf, str);
            System.out.println("AES解密后:" + str);
        }
        /**
         * 加密
         *
         * @param key     密钥
         * @param jiami   加密算法
         * @param content 加密内容
         * @return
         * @throws Exception
         */
        private static String jiami(String key, String jiami, String content) throws Exception {
            Cipher cipher = Cipher.getInstance(jiami);
            //加密规则
            SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami);
            //加密模式 加密规则
            cipher.init(Cipher.ENCRYPT_MODE, secretKey);
            //执行加密方法
            byte[] l = cipher.doFinal(content.getBytes());
            String str = Base64.encode(l);
            return str;
        }
        /**
         * 解密
         *
         * @param key     密钥
         * @param jiami   算法
         * @param content 解密内容
         * @return
         * @throws Exception
         */
        private static String jiemi(String key, String jiami, String content) throws Exception {
            Cipher cipher = Cipher.getInstance(jiami);
            //加密规则
            SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami);
            //加密模式 加密规则 解密 DECRYPT
            cipher.init(Cipher.DECRYPT_MODE, secretKey);
            //执行解密方法
            byte[] str = Base64.decode(content.getBytes());
            byte[] ss = cipher.doFinal(str);
            return new String(ss);
        }
    }

    DES:

    package com.example.wuji.jiami;
    import com.sun.org.apache.xml.internal.security.utils.Base64;
    import javax.crypto.Cipher;
    import javax.crypto.spec.SecretKeySpec;
    /**
     * 对称加密 DES
     */
    public class Des {
        public static void main(String[] args) throws Exception {
            String jin = "jinxudong";
            //DES加密 只允许密钥是8个字节的
            String key = "12345678";
            String sf = "DES";
            String str = jiami(key, sf, jin);
            System.out.println("DES加密后:" + str);
            str = jiemi(key, sf, str);
            System.out.println("DES解密后:" + str);
        }
        /**
         * 加密
         *
         * @param key     密钥
         * @param jiami   加密算法
         * @param content 加密内容
         * @return
         * @throws Exception
         */
        private static String jiami(String key, String jiami, String content) throws Exception {
            Cipher cipher = Cipher.getInstance(jiami);
            //加密规则
            SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami);
            //加密模式 加密规则
            cipher.init(Cipher.ENCRYPT_MODE, secretKey);
            //执行加密方法
            byte[] l = cipher.doFinal(content.getBytes());
            String str = Base64.encode(l);
            return str;
        }
        /**
         * 解密
         *
         * @param key     密钥
         * @param jiami   算法
         * @param content 解密内容
         * @return
         * @throws Exception
         */
        private static String jiemi(String key, String jiami, String content) throws Exception {
            Cipher cipher = Cipher.getInstance(jiami);
            //加密规则
            SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami);
            //加密模式 加密规则 解密 DECRYPT
            cipher.init(Cipher.DECRYPT_MODE, secretKey);
            //执行解密方法
            byte[] str = Base64.decode(content.getBytes());
            byte[] ss = cipher.doFinal(str);
            return new String(ss);
        }
    }
  • 相关阅读:
    字符串子串
    素数
    DP4056替代LTC4056/TP4056锂电池充电保护芯片_1000mA
    DP4054替代LTC405x系列500mA锂电池充电芯片
    Ci522替代MFRC522手机NFC开锁应用13.56Mhz读写器芯片
    node补充dom环境
    springCloud组件详细解析
    23种设计模式——代理模式
    redis实现接口限流
    JVM常用调优参数以及linux服务器启动项目命令jvm参数调优案例
  • 原文地址:https://www.cnblogs.com/coderdxj/p/14409383.html
Copyright © 2011-2022 走看看