日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java 實現DES 加密解密的示例

瀏覽:13日期:2022-08-20 09:55:07

package com.cn.peitest;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import javax.crypto.spec.IvParameterSpec;/** * @功能說明: <BR> * @創建日期:2016年9月21日<BR> * @變更記錄:<BR> * 1、2016年9月21日 LeoLu 更新 */public class DESUtil { /**用于建立大寫的十六進制字符的輸出*/ private static final char[] DIGITS_UPPER = { ’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’A’, ’B’, ’C’, ’D’, ’E’, ’F’ }; /**DES向量*/ private static final byte[] iv = {0x12, 0x34, 0x56, 0x78, (byte) 0x90, (byte) 0xab, (byte) 0xcd, (byte) 0xef}; //private static final Logger log = LoggerFactory.getLogger(DESUtil.class); /** * @函數名稱:encodeHex<br> * @創建日期:2016年9月22日<br> * @功能說明: 將字節數組轉換為十六進制字節數組 <br> * @參數說明:data byte[] 字節數組<br> * @參數說明:toDigits char[] 向量<br> * @返回說明:十六進制char[] */ private static char[] encodeHex(byte[] data, char[] toDigits) { int l = data.length; char[] out = new char[l << 1]; for (int i = 0, j = 0; i < l; i++) { out[j++] = toDigits[(0xF0 & data[i]) >>> 4]; out[j++] = toDigits[0x0F & data[i]]; } return out; } /** * @函數名稱:encodeHexStr<br> * @創建日期:2016年9月22日<br> * @功能說明:將16進制字節數組轉換為十六進制字符串 <br> * @參數說明:data byte[] 16進制字節數組 <br> * @參數說明:toDigits char[] 向量 <br> * @返回說明:String 返回16進制字符串 */ private static String encodeHexStr(byte[] data, char[] toDigits) { return new String(encodeHex(data, toDigits)); } /** * @函數名稱:hexStringToString<br> * @創建日期:2016年9月21日<br> * @功能說明:將16進制字符串轉換為10進制字符串 <br> * @參數說明:str String 16進制字符串 <br> * @返回說明:String */ private static String hexStringToString(String str) { if (str == null || str.equals('')) { return null; } str = str.replace(' ', ''); byte[] baKeyword = new byte[str.length() / 2]; for (int i = 0; i < baKeyword.length; i++) { try { baKeyword[i] = (byte) (0xff & Integer.parseInt( str.substring(i * 2, i * 2 + 2), 16)); } catch (Exception e) { e.printStackTrace(); } } try { str = new String(baKeyword, 'UTF-8'); new String(); } catch (Exception e1) { e1.printStackTrace(); } return str; } /** * @函數名稱:encrypt<br> * @創建日期:2016年9月22日<br> * @功能說明:加密字節數組 <br> * @參數說明:arrB byte[] 需要加密的字節數組 <br> * @參數說明:key String 秘鑰 <br> * @返回說明:byte[] */ private static byte[] encrypt(byte[] arrB, String key) throws Exception { return converCrypt(arrB, key, true); } /** * @函數名稱:encrypt<br> * @創建日期:2016年9月22日<br> * @功能說明:加密字符串 <br> * @參數說明:xml String 加密字符串 <br> * @參數說明:key String 秘鑰 <br> * @返回說明:String 返回加密后的16進制字符串 */ public static String encrypt(String xml, String key) { try { return encodeHexStr(encrypt(xml.getBytes('UTF-8'), key), DIGITS_UPPER); } catch (Exception e) { System.out.println(e); return ''; } } /** * @函數名稱:decrypt<br> * @創建日期:2016年9月22日<br> * @功能說明: 將16進制字節數組進行解密 <br> * @參數說明: arrB byte[] 解密字節數組<br> * @參數說明:key String 秘鑰 <br> * @返回說明:byte[] 返回解密后 的16位字節數組 */ private static byte[] decrypt(byte[] arrB, String key) throws Exception { return converCrypt(arrB, key, false); } /** * @函數名稱:converCrypt<br> * @創建日期:2016年9月22日<br> * @功能說明:將16位的字節數據進行加密或解密 <br> * @參數說明: arrB byte[] 需要加密的字節數組<br> * @參數說明: key String 秘鑰<br> * @參數說明:encrypt boolean是否加密,true加密,false解密 <br> * @返回說明:byte[] 返回16進制字節數組 */ private static byte[] converCrypt(byte[] arrB, String key, boolean encrypt) throws Exception{ String vikey = MD5.sign(key).substring(0, 8).toUpperCase(); DESKeySpec desKeySpec = new DESKeySpec(vikey.getBytes()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance('DES'); SecretKey secretKey = keyFactory.generateSecret(desKeySpec); IvParameterSpec ivp = new IvParameterSpec(vikey.getBytes()); Cipher cipher = Cipher.getInstance('DES/CBC/PKCS5Padding'); /**加密*/ if (encrypt == true) { cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivp); } else{ /**解密*/ cipher.init(Cipher.DECRYPT_MODE, secretKey, ivp); } return cipher.doFinal(arrB); } /** * @函數名稱:decrypt<br> * @創建日期:2016年9月22日<br> * @功能說明:解密16進制字符串 <br> * @參數說明: desStr String 需要解密的16進制字符串<br> * @參數說明: key String 秘鑰<br> * @返回說明:String 返回解密后的10進制字符串 */ public static String decrypt(String desStr, String key) { try{ if (null == desStr || null == key) { return ''; } return hexStringToString(encodeHexStr(decrypt(hexStringToByte(new String(desStr.getBytes('UTF-8'))), key), DIGITS_UPPER)); } catch (Exception e) { System.out.println(); return ''; } } /** * @函數名稱:hexStringToByte<br> * @創建日期:2016年9月22日<br> * @功能說明:將16進制字符串轉換為16進制字節數組 <br> * @參數說明:hex String需要轉換的16進制字符串 <br> * @返回說明:byte[] 返回轉換后的16進制字節數組 */ private static byte[] hexStringToByte(String hex) { int len = (hex.length() / 2); byte[] result = new byte[len]; char[] achar = hex.toCharArray(); for (int i = 0; i < len; i++) { int pos = i * 2; result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1])); } return result; } /** * @函數名稱:toByte<br> * @創建日期:2016年9月22日<br> * @功能說明: 將字符轉換為字節<br> * @參數說明: c char 需要轉換的字符<br> * @返回說明:int 返回字符對應的字節碼 */ private static int toByte(char c) { byte b = (byte) '0123456789ABCDEF'.indexOf(c); return b; } /** * @構造函數 */ public DESUtil() { // TODO Auto-generated constructor stub } /** * @函數名稱:main<br> * @創建日期:2016年9月21日<br> * @功能說明: <br> * @參數說明: <br> * @返回說明:void */ public static void main(String[] args) { // TODO Auto-generated method stub try { System.out.println('-----------------------------'); String bStr = '123'; String key = 'SZAOA589'; String binSing = encrypt(bStr, key); System.out.println('加密前:'+bStr); System.out.println('加密后:'+binSing); System.out.println('解密后:'+decrypt(binSing, key)); System.out.println('-------------------------'); } catch (Exception e) { // TODO Auto-generated catch bloc e.printStackTrace(); } //3B976A2A2919A60B57DFF3518F65E1FF //3B976A2A2919A60B57DFF3518F65E1FF /* * C4A737D04D0D05E2 BD2DD4FC5050EBD0 */ }}//================================package com.cn.peitest;import java.security.MessageDigest; public class MD5 { // 生成MD5(截取16位長度) public static String sign(String message) { String md5 = ''; try { MessageDigest md = MessageDigest.getInstance('MD5'); // 創建一個md5算法對象 byte[] messageByte = message.getBytes('UTF-8'); byte[] md5Byte = md.digest(messageByte); // 獲得MD5字節數組,16*8=128位 md5 = bytesToHex(md5Byte).substring(0, 16); // 轉換為16進制字符串 } catch (Exception e) { e.printStackTrace(); } return md5; } // 二進制轉十六進制 public static String bytesToHex(byte[] bytes) { StringBuffer hexStr = new StringBuffer(); int num; for (int i = 0; i < bytes.length; i++) { num = bytes[i]; if (num < 0) { num += 256; } if (num < 16) { hexStr.append('0'); } hexStr.append(Integer.toHexString(num)); } return hexStr.toString().toUpperCase(); }}

以上就是java 實現DES 加密解密的示例代碼的詳細內容,更多關于java des加密解密的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产中文欧美日韩在线| 欧美亚洲tv| 国产精品精品国产一区二区| 国产精久久久| 久久免费视频66| 国产传媒在线| 久久中文字幕二区| 午夜久久99| 国产精品腿扒开做爽爽爽挤奶网站| 欧美成人高清| 91看片一区| 日韩精品免费一区二区三区| 1024精品一区二区三区| 好吊一区二区三区| 国产精品日韩久久久| 日韩精品一二三区| 日韩精品一级| 欧美激情综合| 91精品一区国产高清在线gif| 久久国产电影| 亚洲一区欧美二区| 日韩av午夜在线观看| 久久精品网址| 99精品视频精品精品视频| 亚洲综合不卡| 色狠狠一区二区三区| 国产极品一区| 亚洲不卡av不卡一区二区| 国产精品视区| 国产一级成人av| 国产精品夜夜夜| 日韩专区精品| 天堂va蜜桃一区二区三区| 日韩黄色免费网站| 久久伊人亚洲| 久久亚洲精品中文字幕蜜潮电影| 午夜一级在线看亚洲| 日本色综合中文字幕| 国产专区精品| 亚洲电影在线一区二区三区| 日韩激情一二三区| 久久麻豆视频| 国产亚洲高清视频| 麻豆极品一区二区三区| 在线精品小视频| 国产精品一区二区精品视频观看| 久久人人精品| 日韩高清在线一区| 日韩欧美看国产| 日韩一区二区三区精品| av免费不卡国产观看| 综合视频一区| 日韩在线二区| 日韩综合小视频| 黄色在线观看www| 另类亚洲自拍| 国产精品啊v在线| 国产精品女主播一区二区三区| 久久国产三级| 红桃视频国产精品| 精品国产午夜| 亚洲日本欧美| 私拍精品福利视频在线一区| 日本少妇精品亚洲第一区| 秋霞影院一区二区三区| 日韩国产在线观看一区| 丝袜美腿诱惑一区二区三区| 日精品一区二区三区| 国产精品久久久久av电视剧| 91精品视频一区二区| 久久天堂成人| 91精品丝袜国产高跟在线| 欧美美女一区| 国产精品流白浆在线观看| 最新日韩欧美| 欧美国产小视频| 日本午夜精品久久久久| 午夜久久久久| 超级白嫩亚洲国产第一| 欧美另类中文字幕| 国产高清久久| 亚洲欧洲美洲av| 国产精品一区二区99| 免费精品视频最新在线| 香蕉久久国产| 色婷婷精品视频| 国产欧美日韩精品高清二区综合区 | 日韩一区三区| 国产精品白丝一区二区三区| 亚洲精品极品| 亚洲综合三区| 国产高清久久| 欧美午夜精品一区二区三区电影| 久久影院资源站| 日日夜夜免费精品| 亚洲深夜影院| 91成人网在线观看| 久久精品国产www456c0m| 国产96在线亚洲| 国产高清视频一区二区| 日韩欧美2区| 亚洲在线国产日韩欧美| 91精品亚洲| 日韩欧美午夜| 激情不卡一区二区三区视频在线| 欧美日一区二区三区在线观看国产免| 亚洲三区欧美一区国产二区| 久久av一区| 亚洲欧美日韩国产综合精品二区| 99精品视频精品精品视频| 超碰99在线| 97精品国产福利一区二区三区| 精品久久一区| 水蜜桃精品av一区二区| 国产一区二区三区精品在线观看| 久久精品九色| 国产一区二区三区四区五区传媒| 久久精品国产久精国产爱| 美女久久精品| 精品免费在线| 国产精品福利在线观看播放| 国产成人调教视频在线观看| 欧美国产亚洲精品| 久久97视频| 福利一区二区免费视频| 久久久久久久欧美精品| 欧美精品资源| 亚洲va在线| 欧美a级片一区| 午夜精品一区二区三区国产| 欧美在线影院| 三级在线观看一区二区| 日本一区二区三区视频在线看| 日韩毛片一区| 国产精品日韩精品在线播放| 精品欧美日韩精品| 中文字幕人成乱码在线观看| 亚洲v在线看| 亚洲欧美日韩一区在线观看| 亚洲精品欧洲| 欧美国产另类| 日本精品不卡| 亚洲在线成人| 欧美在线观看天堂一区二区三区| 久久不见久久见国语| 国产精品久久久久久久免费观看| 日韩精品诱惑一区?区三区| 一本一道久久a久久精品蜜桃| 午夜亚洲福利在线老司机| 免费观看久久久4p| 日韩精品一区二区三区中文在线| 国产精品视频一区二区三区四蜜臂| 麻豆一区二区三| 日韩免费看片| 午夜一级在线看亚洲| 欧美中文一区| 国产拍在线视频| 99日韩精品| 国产精品亚洲欧美日韩一区在线 | 久久精品人人| 久久精品国产大片免费观看| 蜜桃av一区二区在线观看| 国产精品中文字幕亚洲欧美| 涩涩av在线| 亚洲视频国产精品| 国产乱码精品一区二区三区四区| 91亚洲一区| 日韩精品一级中文字幕精品视频免费观看 | 欧美成人基地| 亚洲综合激情在线| 久久永久免费| 欧美日韩国产亚洲一区| 日韩极品在线观看| 日韩成人高清| 日本综合精品一区| 在线中文字幕播放| 亚洲一区二区免费在线观看| 国际精品欧美精品| 日韩制服丝袜av| 国产一区二区精品福利地址| 国产精品美女| 精品亚洲二区| 亚洲另类黄色| 正在播放日韩精品| 亚洲精品大片| 中国字幕a在线看韩国电影| 在线精品一区| 婷婷综合六月| 国产精品羞羞答答在线观看| 亚洲精品91| 精品午夜av| 中文精品电影| 中文字幕系列一区| 国产欧美日韩视频在线| 婷婷色综合网| 国产伊人久久| 日韩不卡一区二区| 自拍日韩欧美| 亚洲精品福利电影| 欧美一级久久|