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

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

java 實現DES 加密解密的示例

瀏覽:14日期: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久久,三上悠亚国产精品一区二区三区
久久精品国产在热久久| 国产精品99免费看| 天堂va蜜桃一区二区三区| 日韩天堂在线| 国产美女高潮在线| 成人午夜网址| 91综合网人人| 91一区二区| 亚洲精品成人图区| 亚洲爱爱视频| 亚洲精品小说| 久久青草久久| 国精品一区二区三区| 激情欧美丁香| 亚洲激情欧美| 一级欧美视频| 欧美日韩亚洲三区| 国产精品乱战久久久| 美女视频网站久久| 高清久久精品| 日本美女一区| 欧美粗暴jizz性欧美20| 久久不射网站| 日韩欧美激情| 国产精品v日韩精品v欧美精品网站| 国产欧美在线观看免费| 日韩精品久久久久久| 国产亚洲精品美女久久久久久久久久| 国产精品嫩模av在线| 久久99久久人婷婷精品综合| 精品中文在线| 亚洲精品一级二级| 欧洲激情综合| 日韩视频1区| 国产精品中文字幕制服诱惑| 久久中文精品| 久久久精品网| 91成人精品| 日本不卡一二三区黄网| 欧美精品97| 日韩中文字幕高清在线观看| 欧美日中文字幕| 一二三区精品| 久久99高清| 欧美日韩国产欧| 欧美亚洲三区| 中文字幕人成乱码在线观看| 国产亚洲精品v| 日韩国产在线不卡视频| 久久伊人国产| 欧美日韩激情在线一区二区三区| 视频一区日韩精品| 欧美天堂视频| 一区二区精品| 四季av一区二区凹凸精品| 伊人精品视频| 国产三级一区| 九色porny丨国产首页在线| 国产免费成人| 国产精品66| 999在线观看精品免费不卡网站| 日韩高清电影一区| 日韩理论片av| 亚洲精品伊人| 亚洲人成在线网站| 欧美性www| 亚洲性色视频| 国产精品午夜一区二区三区| 日韩成人亚洲| 欧美视频二区| 国产精品91一区二区三区| 日本aⅴ免费视频一区二区三区| 福利精品一区| 日韩精品欧美成人高清一区二区| 丝袜美腿诱惑一区二区三区 | 亚洲二区三区不卡| 国产福利亚洲| 免费成人在线观看| 日韩在线不卡| 欧美亚洲国产日韩| 尹人成人综合网| 国产aⅴ精品一区二区四区| 亚洲丝袜啪啪| 少妇久久久久| 牛牛精品成人免费视频| 亚洲开心激情| 香蕉精品视频在线观看| 久久久久久久欧美精品| 亚欧洲精品视频在线观看| 精品中文字幕一区二区三区av| 国产精品xxx在线观看| 综合激情网...| 狠狠色狠狠色综合日日tαg| 日韩理论片av| 国产一区二区三区四区五区| 奇米亚洲欧美| 亚洲精品乱码| 噜噜噜躁狠狠躁狠狠精品视频| 久久久久久网| 日韩中文字幕| 欧美亚洲激情| 久久亚洲黄色| 国产精品亚洲人成在99www| 亚洲国产一区二区三区在线播放| 日本不良网站在线观看| 国产女优一区| 亚洲香蕉网站| 亚洲精品在线a| 亚洲欧洲日本mm| 亚洲久草在线| 中文国产一区| 亚洲一区国产一区| 日本久久成人网| 天堂中文av在线资源库| 国产亚洲欧美日韩在线观看一区二区| 最新亚洲国产| 国内精品99| 91久久黄色| 国产99久久| 五月婷婷亚洲| 精精国产xxxx视频在线野外| 精品成人免费一区二区在线播放| 国产精品乱战久久久| 国产精品一级| 日本麻豆一区二区三区视频| 日本不卡在线视频| 一本综合精品| 日本免费新一区视频| 免费看欧美美女黄的网站| 亚洲欧美视频| av在线日韩| 美女av在线免费看| 国产精品亚洲一区二区在线观看| 国产欧美日韩视频在线| 亚洲人成高清| 国产欧美一区| 日韩精品一区二区三区中文在线| 亚洲精品欧美| 六月婷婷一区| 91嫩草精品| 青青伊人久久| 精品国产一区二区三区性色av| 国产亚洲一区| 欧美日韩中文| 日韩精品亚洲aⅴ在线影院| 国产99久久| 日韩电影免费在线观看| 久久uomeier| 日韩伦理在线一区| 中文字幕在线视频久| 一区二区三区视频免费观看| 日韩精品看片| 在线亚洲欧美| 日韩一区精品视频| 日韩毛片一区| 国产精品永久| 日韩欧美一区二区三区在线视频 | 国精品一区二区三区| 首页欧美精品中文字幕| 成人av动漫在线观看| 亚洲精品字幕| 首页欧美精品中文字幕| 日韩一区二区三区精品| 美女精品在线| 日日摸夜夜添夜夜添国产精品| 日韩av不卡一区二区| 国产日韩一区| 99久久99视频只有精品| 激情综合激情| 亚洲一区欧美| 婷婷视频一区二区三区| 成人在线黄色| 99久久久久| 日本a级不卡| 久久亚洲黄色| 国产午夜久久| 日本成人在线一区| 三上悠亚国产精品一区二区三区| 亚洲va中文在线播放免费| 亚洲久久在线| 国产精品美女在线观看直播| 欧美日韩国产传媒| 亚洲欧洲免费| 高清av不卡| 五月婷婷亚洲| 欧美a一区二区| 久久免费国产| 日韩中文字幕一区二区三区| 亚洲人成亚洲精品| 精品中国亚洲| 欧美亚洲国产精品久久| 免费视频久久| 欧美日韩午夜电影网| 国内精品伊人| 婷婷综合五月| 日韩三级精品| 精品久久久久久久| 欧美日韩精品一本二本三本 | 日韩视频二区| 91精品在线免费视频|