日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java des对称加密_JAVA加密解密DES对称加密算法

發布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java des对称加密_JAVA加密解密DES对称加密算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 下面用DES對稱加密算法(設定一個密鑰,然后對所有的數據進行加密)來簡單舉個例子。2

3 首先,生成一個密鑰KEY。4 我把它保存到key.txt中。這個文件就象是一把鑰匙。誰擁有它,誰就能解開我們的類文件。代碼參考如下:5 packagecom.neusoft.jiami;6 importJava.io.File;7 importjava.io.FileOutputStream;8 importjava.security.SecureRandom;9 importjavax.crypto.KeyGenerator;10 importjavax.crypto.SecretKey;11 classKey {12 privateString keyName;13 publicKey(String keyName) {14 this.keyName =keyName;15 }16 public void createKey(String keyName) throwsException {17 //創建一個可信任的隨機數源,DES算法需要

18 SecureRandom sr = newSecureRandom();19 //用DES算法創建一個KeyGenerator對象

20 KeyGenerator kg = KeyGenerator.getInstance("DES");21 //初始化此密鑰生成器,使其具有確定的密鑰長度

22 kg.init(sr);23 //生成密匙

24 SecretKey key =kg.generateKey();25 //獲取密鑰數據

26 byte rawKeyData[] =key.getEncoded();27 //將獲取到密鑰數據保存到文件中,待解密時使用

28 FileOutputStream fo = new FileOutputStream(newFile(keyName));29 fo.write(rawKeyData);30 }31 public static voidmain(String args[]) {32 try{33 new Key("key.txt");34 } catch(Exception e) {35 e.printStackTrace();36 }37 }38 }39 第二步,對我們所要進行加密的類文件進行加密。40 比如我有一個DigestPass類,已經被正常編譯好生成DigestPass.class文件。此時,這個類文件是任何人都可以用的。因為系統的類加載器可以自動的加載它。那么下一步,我們要做的就是把這個類文件加密。使系統的類加載器無法讀取到正確的字節碼文件。參考代碼如下:41 packagecom.neusoft.jiami;42 importjava.io.File;43 importjava.io.FileInputStream;44 importjava.io.FileOutputStream;45 importjava.security.SecureRandom;46 importjavax.crypto.Cipher;47 importjavax.crypto.SecretKey;48 importjavax.crypto.SecretKeyFactory;49 importjavax.crypto.spec.DESKeySpec;50 public classJiaMi {51 public static void main(String[] args) throwsException {52 //DES算法要求有一個可信任的隨機數源

53 SecureRandom sr = newSecureRandom();54 //獲得密匙數據

55 FileInputStream fi = new FileInputStream(new File("key.txt"));56 byte rawKeyData[] = new byte[fi.available()];57 fi.read(rawKeyData);58 fi.close();59 //從原始密匙數據創建DESKeySpec對象

60 DESKeySpec dks = newDESKeySpec(rawKeyData);61 //創建一個密匙工廠,然后用它把DESKeySpec轉換成一個SecretKey對象

62 SecretKey key = SecretKeyFactory.getInstance("DES").generateSecret(dks);63 //Cipher對象實際完成加密操作

64 Cipher cipher = Cipher.getInstance("DES");65 //用密匙初始化Cipher對象

66 cipher.init(Cipher.ENCRYPT_MODE, key, sr);67 //現在,獲取要加密的文件數據

68 FileInputStream fi2 = new FileInputStream(new File("DigestPass.class"));69 byte data[] = new byte[fi2.available()];70 fi2.read(data);71 fi2.close();72 //正式執行加密操作

73 byte encryptedData[] =cipher.doFinal(data);74 //用加密后的數據覆蓋原文件

75 FileOutputStream fo = new FileOutputStream(new File("DigestPass.class"));76 fo.write(encryptedData);77 fo.close();78 }79 }80 第三步,用自定義的CLASSLOADER進行加載。參考代碼如下:81 packagecom.neusoft.jiami;82 importjava.io.File;83 importjava.io.FileInputStream;84 importjava.io.FileOutputStream;85 importjava.security.SecureRandom;86 importjavax.crypto.Cipher;87 importjavax.crypto.SecretKey;88 importjavax.crypto.SecretKeyFactory;89 importjavax.crypto.spec.DESKeySpec;90 importcom.neusoft.classloader.MyClassLoader;91 public classJieMi {92 public static void main(String[] args) throwsException {93 //DES算法要求有一個可信任的隨機數源

94 SecureRandom sr = newSecureRandom();95 //獲得密匙數據

96 FileInputStream fi = new FileInputStream(new File("key.txt"));97 byte rawKeyData[] = new byte[fi.available()];//= new byte[5];

98 fi.read(rawKeyData);99 fi.close();100 //從原始密匙數據創建一個DESKeySpec對象

101 DESKeySpec dks = newDESKeySpec(rawKeyData);102 //創建一個密匙工廠,然后用它把DESKeySpec對象轉換成一個SecretKey對象

103 SecretKey key = SecretKeyFactory.getInstance("DES").generateSecret(dks);104 //Cipher對象實際完成解密操作

105 Cipher cipher = Cipher.getInstance("DES");106 //用密匙初始化Cipher對象

107 cipher.init(Cipher.DECRYPT_MODE, key, sr);108 //現在,獲取數據并解密

109 FileInputStream fi2 = new FileInputStream(new File("DigestPass.class"));110 byte encryptedData[] = new byte[fi2.available()];111 fi2.read(encryptedData);112 fi2.close();113 //正式執行解密操作

114 byte decryptedData[] =cipher.doFinal(encryptedData);115 //這時把數據還原成原有的類文件116 //FileOutputStream fo = new FileOutputStream(new117 //File("DigestPass.class"));118 //fo.write(decryptedData);119 //用解密后的數據加載類并應用

120 MyClassloader mcl = new MyClassloader("E:/");121 Class cl = mcl.loadClass(decryptedData, "com.neusoft.jiami.DigestPass");122 DigestPass dp =cl.newInstance();123 }124 }

總結

以上是生活随笔為你收集整理的java des对称加密_JAVA加密解密DES对称加密算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 不卡视频国产 | 亚洲欧美另类在线视频 | 美女网站免费观看视频 | 久久性 | 粉嫩av在线 | 小香蕉影院 | 亚洲免费婷婷 | 久久久不卡国产精品一区二区 | a毛片在线免费观看 | 一区二区三区精品免费视频 | 国产高清久久 | 国产第页 | 中文字幕人妻一区二 | 不许穿内裤随时挨c调教h苏绵 | 亚洲综合首页 | juliaann欧美二区三区 | 在线视频综合网 | 自拍偷拍福利视频 | 激情综合久久 | 国产黄色大片视频 | 第一福利在线视频 | 三级视频在线看 | 亚洲成人h | 黄色一级视频在线观看 | 黄a免费网络 | 国产精品亚洲无码 | 中文在线字幕免费观 | 综合久久久久久久 | 中文成人无字幕乱码精品区 | 久久一级黄色片 | 欧美亚洲另类在线 | 免费污视频在线观看 | 亚洲性生活网站 | 男女无遮挡免费视频 | 亚洲成人av在线播放 | 久久久123| 麻豆tv在线 | 国产女人18毛片水真多 | 精品国产av色一区二区深夜久久 | 深夜福利国产精品 | 91免费观看入口 | 日韩中文娱乐网 | 天堂色综合 | 精品视频一区二区三区四区五区 | 伊人二区| 少妇影院在线观看 | 日本精品视频一区 | av日韩一区二区 | 在线的av | 99精品欧美一区二区 | 极品在线视频 | 日韩欧美成人网 | 91在线无精精品入口 | 免费网站在线观看人数在哪动漫 | 欧美日韩精品在线 | 西西久久 | 九色影院 | 美女隐私无遮挡免费 | 免费a视频 | 五月天综合网站 | 欧美一区二区三区在线观看视频 | 91蜜桃| 大地资源影视在线播放观看高清视频 | 国产系列在线 | 中文字幕岛国 | 亚洲国产精品成人无码区 | 高h视频在线观看 | 亚洲剧情在线 | 国产99色| 日本黄色三级视频 | 一区二区三区国产在线观看 | 午夜不卡福利视频 | 免费看毛片网站 | 亚洲午夜免费视频 | 欧美视频导航 | 久久精品8 | 成年人免费av | 欧美美女一区二区 | 亚洲av人人澡人人爽人人夜夜 | 成人无码视频 | 成人动漫一区二区三区 | 色综合久久久 | 久久久久久草 | 懂色av一区二区三区在线播放 | 国内精品亚洲 | 久草中文视频 | 久久密桃 | 国产操比视频 | 在线视频综合网 | 日本啪啪网 | 成人无码www在线看免费 | 在线午夜av | 91精品国产色综合久久不8 | 超碰在线免费97 | 黄网站在线观看 | 国产精品99无码一区二区视频 | 无码精品一区二区免费 | 国产情侣第一页 | 国产片高清在线观看 |