国产精品美女久久久浪潮AV,国产精品三级一二三区,久久精品国产一区二区小说 ,依依成人影视国产精品,全部无卡免费的毛片在线看,日本一区二区三深夜不卡,国产精品女同一区二区久久,国产精品夜色一区二区三区

        關于web項目前后端加密解密總結

        2021-5-27    前端達人

        首先項目是基于vue開發的項目

        1、DES加密

        前端

        需要引入js

        import cryptoJs from 'crypto-js'

        // DES加密

        export const encryptDes = (message, key) => {

        return cryptoJs.DES.encrypt(message, cryptoJs.enc.Utf8.parse(key), {

        mode: cryptoJs.mode.ECB,

        padding: cryptoJs.pad.Pkcs7

        }).toString()

        }

        后臺


        package com.huihui.until;

        import java.security.SecureRandom;
        import java.util.Scanner;
         
        import javax.crypto.Cipher;
        import javax.crypto.SecretKeyFactory;
        import javax.crypto.spec.DESKeySpec;
         
        import org.apache.commons.codec.binary.Base64;
         
         
        /**
         * <b>類說明:DES</b>
         * <p>
         * <b>詳細描述:</b>
         * @since 2019年3月31日 下午17:00:16
         */
        public class DESCryptUtil {
            
            private static final String DES = "DES";
            
            public static final String desKey = "ba54ee44";
         
            public static String doEncrypt(String plainMessage, String hexDesKey) throws Exception {
                byte desKey[] = hexDesKey.getBytes();
                byte desPlainMsg[] = plainMessage.getBytes();
                return Base64.encodeBase64URLSafeString(desCrypt(desKey, desPlainMsg, Cipher.ENCRYPT_MODE));
            }
            /**
             * 獲取解密后的字符串
             * @param hexEncryptMessage
             * @param hexDesKey
             * @return
             * @throws Exception
             */
            public static String doDecrypt(String hexEncryptMessage, String hexDesKey) throws Exception{
                if (hexEncryptMessage == null) {
                    return null;
                }
                byte desKey[] = hexDesKey.getBytes();
                byte desPlainMsg[] = Base64.decodeBase64(hexEncryptMessage);
                return new String(desCrypt(desKey, desPlainMsg, Cipher.DECRYPT_MODE));
            }
            /**
             * 獲取解密后的數組
             * @param desPlainMsg
             * @param hexDesKey
             * @return
             * @throws Exception
             */
            public static byte[] doDecryptByte(byte[] desPlainMsg, String hexDesKey) throws Exception{
                if (desPlainMsg == null) {
                    return null;
                }
                byte desKey[] = hexDesKey.getBytes();
                return desCrypt(desKey, desPlainMsg, Cipher.DECRYPT_MODE);
            }
            
            private static byte[] desCrypt(byte[] desKey, byte[] desPlainMsg, int CipherMode) throws Exception{
                try {
                    SecureRandom sr = new SecureRandom();
                    DESKeySpec dks = new DESKeySpec(desKey);
                    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
                    javax.crypto.SecretKey key = keyFactory.generateSecret(dks);
                    Cipher cipher = Cipher.getInstance(DES);
                    cipher.init(CipherMode, key, sr);
                    return cipher.doFinal(desPlainMsg);
                } catch (Exception e) {
                    String message = "";
                    if (CipherMode == Cipher.ENCRYPT_MODE) {
                        message = "DES\u52A0\u5BC6\u5931\u8D25";
                    } else {
                        message = "DES\u89E3\u5BC6\u5931\u8D25";
                    }
                    throw new Exception(message, e);
                }
            }
            /**
             * 獲取8位的key
             * @param str
             * @return
             */
            public static String processString(String str) {
                if(str==null||"".equals(str)) {
                    return "";
                }
                StringBuilder sb = new StringBuilder();
                for(int i=0;i<8;i++) {
                    int index = i<<2&(32-i);
                    sb.append(str.charAt(index));
                }
                
                return sb.toString();
            }
            public static void main(String[] args) throws Exception{
                DESCryptUtil se=new DESCryptUtil();
                for (int i = 0; i < 5; i++) {
                    Scanner scanner=new Scanner(System.in);
                    /*
                     * 加密
                     */
                    System.out.println("請輸入要加密的內容:");
                    String content = scanner.next();
                    System.out.println("加密后的密文是:"+se.doEncrypt(content, desKey));
                   
                    /*
                     * 解密
                     */
                    System.out.println("請輸入要解密的內容:");
                     content = scanner.next();
                    System.out.println("解密后的明文是:"+se.doDecrypt(content, desKey));
                }
            }

        }
         

        2 RSA加密解密

        這是我是在在線生成公鑰私鑰的網站中生成了自己的公鑰私鑰用來測試

        前臺

        import JsEncrypt from 'jsencrypt'

        // RSA加密

        export function encryptRsa(publickey, message) {

        const rsa = new JsEncrypt()

        rsa.setPublicKey(publickey)

        return rsa.encrypt(message)

        }

        后臺

        package com.huihui.until;

        import org.apache.commons.codec.binary.Base64;

        import com.googosoft.config.GlobalConstants;

        import javax.crypto.Cipher;
        import java.security.KeyFactory;
        import java.security.KeyPair;
        import java.security.KeyPairGenerator;
        import java.security.NoSuchAlgorithmException;
        import java.security.SecureRandom;
        import java.security.interfaces.RSAPrivateKey;
        import java.security.interfaces.RSAPublicKey;
        import java.security.spec.PKCS8EncodedKeySpec;
        import java.security.spec.X509EncodedKeySpec;
        import java.util.HashMap;
        import java.util.Map;
          
          
        public class RSAUtil {  
              
            private static Map<Integer, String> keyMap = new HashMap<Integer, String>();  //用于封裝隨機產生的公鑰與私鑰
            public static void main(String[] args) throws Exception {
                //生成公鑰和私鑰
                genKeyPair();
                //加密字符串
                String message = "df723820";
            //GlobalConstants.PUBLICKEY 公鑰加密
                String messageEn = encrypt(message,GlobalConstants.PUBLICKEY);
                System.out.println(message + "\t加密后的字符串為:" + messageEn);

        //GlobalConstants.PRIVATEKEY 私鑰解密
                String messageDe = decrypt(messageEn,GlobalConstants.PRIVATEKEY);
                System.out.println("還原后的字符串為:" + messageDe);
            }

            /** 
             * 隨機生成密鑰對 
             * @throws NoSuchAlgorithmException 
             */  
            public static void genKeyPair() throws NoSuchAlgorithmException {  
                // KeyPairGenerator類用于生成公鑰和私鑰對,基于RSA算法生成對象  
                KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");  
                // 初始化密鑰對生成器,密鑰大小為96-1024位  
                keyPairGen.initialize(1024,new SecureRandom());  
                // 生成一個密鑰對,保存在keyPair中  
                KeyPair keyPair = keyPairGen.generateKeyPair();  
                RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();   // 得到私鑰  
                RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();  // 得到公鑰  
                String publicKeyString = new String(Base64.encodeBase64(publicKey.getEncoded()));  
                // 得到私鑰字符串  
                String privateKeyString = new String(Base64.encodeBase64((privateKey.getEncoded())));  
                // 將公鑰和私鑰保存到Map
                keyMap.put(0,publicKeyString);  //0表示公鑰
                keyMap.put(1,privateKeyString);  //1表示私鑰
            }  
            /** 
             * RSA公鑰加密 
             *  
             * @param str 
             *            加密字符串
             * @param publicKey 
             *            公鑰 
             * @return 密文 
             * @throws Exception 
             *             加密過程中的異常信息 
             */  
            public static String encrypt( String str, String publicKey ) throws Exception{
                //base64編碼的公鑰
                byte[] decoded = Base64.decodeBase64(publicKey);
                RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decoded));
                //RSA加密
                Cipher cipher = Cipher.getInstance("RSA");
                cipher.init(Cipher.ENCRYPT_MODE, pubKey);
                String outStr = Base64.encodeBase64String(cipher.doFinal(str.getBytes("UTF-8")));
                return outStr;
            }

            /** 
             * RSA私鑰解密
             *  
             * @param str 
             *            加密字符串
             * @param privateKey 
             *            私鑰 
             * @return 銘文
             * @throws Exception 
             *             解密過程中的異常信息 
             */  
            public static String decrypt(String str, String privateKey) throws Exception{
                //64位解碼加密后的字符串
                byte[] inputByte = Base64.decodeBase64(str.getBytes("UTF-8"));
                //base64編碼的私鑰
                byte[] decoded = Base64.decodeBase64(privateKey);  
                RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(decoded));  
                //RSA解密
                Cipher cipher = Cipher.getInstance("RSA");
                cipher.init(Cipher.DECRYPT_MODE, priKey);
                String outStr = new String(cipher.doFinal(inputByte));
                return outStr;
            }

        }  

        藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

        截屏2021-05-13 上午11.41.03.png


        文章來源:csdn   

        分享此文一切功德,皆悉回向給文章原作者及眾讀者.
        免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

        藍藍設計www.shtzxx.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

        日歷

        鏈接

        個人資料

        藍藍設計的小編 http://www.shtzxx.cn

        存檔

        主站蜘蛛池模板: 公车上拨开她湿润的内裤的视频| 亚洲精品久久久久高潮| 国产最新进精品视频| 精品国产乱码久久久软件下载| 国产成人综合亚洲亚洲国产第一页| z〇zoz〇女人另类zoz〇| 7723日本高清完整版在线观看| 天美麻花果冻视频大全英文| 蜜桃av抽搐高潮一区二区| 丰满熟妇videosxxxxx| 午夜精品久久久久9999高清| 西吉县| 国产色xx群视频射精| 遂平县| 欧美人妻体内射射| 欧美刺激性大交| 公和我做好爽添厨房中文字幕| 平谷区| 海南省| 亚洲av无码男人的天堂| 欧美日韩亚洲国内综合网| 真人作爱试看120分钟3分钟| youjizz丰满熟妇| 开封县| 真人自慰试看120秒| 无码人妻aⅴ一区二区三区蜜桃| 久久久久久av无码免费网站下载 | 中文字幕亚洲无线码在线一区 | 伊宁市| 免费观看18禁黄网站| 野花韩国免费观看| 大香伊蕉在人线国产免费| 西畴县| 麻豆一区二区大豆行情| 国产乱子伦精品视频| 亚洲av天天做在线观看| 亚洲国内精品自在线影院| 亚洲av无码专区在线播放| 久久无码人妻一区二区三区午夜| 江西省| 美国大肥女bbwbbw|