接下來我們介紹對稱加密演算法 最常用的莫過於DES數據加密演算法
DES
DES Data Encryption Standard 即數據加密演算法 是IBM公司於 年研究成功並公開發表的 DES演算法的入口參數有三個 Key Data Mode 其中Key為 個位元組共 位 是DES演算法的工作密鑰 Data也為 個位元組 位 是要被加密或被解密的數據 Mode為DES的工作方式 有兩種 加密或解密
DES演算法把 位的明文輸入塊變為 位的密文輸出塊 它所使用的密鑰也是 位
通過java代碼實現如下
importjava security Key;importjava security SecureRandom;importjavax crypto Cipher;importjavax crypto KeyGenerator;importjavax crypto SecretKey;importjavax crypto SecretKeyFactory;importjavax crypto spec DESKeySpec;/***//***DES安全編碼組件authorby;**<pre>*支持DES DESede(TripleDES 就是 DES) AES Blowfish RC RC (ARCFOUR)*DESkeysizemustbeequalto *DESede(TripleDES)keysizemustbeequalto or *AESkeysizemustbeequalto or but and bitsmaynotbeavailable* andcanonlyrangefrom to (inclusive)*RC keysizemustbebeeen and bits*RC (ARCFOUR)keysizemustbebeeen and bits*具體內容需要關注JDKDocument&///docs/technotes/guides/security/l*</pre>**@author梁棟*@version *@since */{/***//***ALGORITHM演算法<br>*可替換為以下任意一種演算法 同時key值的size相應改變 **<pre>*DESkeysizemustbeequalto *DESede(TripleDES)keysizemustbeequalto or *AESkeysizemustbeequalto or but and bitsmaynotbeavailable* andcanonlyrangefrom to (inclusive)*RC keysizemustbebeeen and bits*RC (ARCFOUR)keysizemustbebeeen and bits*</pre>**在KeytoKey(byte[]key)方法中使用下述代碼*<code>SecretKeysecretKey=newSecretKeySpec(key ALGORITHM);</code>替換*<code>*DESKeySpecdks=newDESKeySpec(key);*SecretKeyFactorykeyFactory=SecretKeyFactory getInstance(ALGORITHM);*SecretKeysecretKey=keyFactory generateSecret(dks);*</code>*/= DES ;/***//***轉換密鑰<br>**@paramkey*@return*@throwsException*/privatestaticKeytoKey(byte[]key)throwsException{DESKeySpecdks=newDESKeySpec(key);SecretKeyFactorykeyFactory=SecretKeyFactory getInstance(ALGORITHM);SecretKeysecretKey=keyFactory generateSecret(dks);//當使用其他對稱加密演算法時 如AES Blowfish等演算法時 用下述代碼替換上述三行代碼//SecretKeysecretKey=newSecretKeySpec(key ALGORITHM);returnsecretKey;}/***//***解密**@paramdata*@paramkey*@return*@throwsException*/publicstaticbyte[]decrypt(byte[]data Stringkey)throwsException{Keyk=toKey(decryptBASE (key));Ciphercipher=Cipher getInstance(ALGORITHM);cipher init(Cipher DECRYPT_MODE k);returncipher doFinal(data);}/***//***加密**@paramdata*@paramkey*@return*@throwsException*/publicstaticbyte[]encrypt(byte[]data Stringkey)throwsException{Keyk=toKey(decryptBASE (key));Ciphercipher=Cipher getInstance(ALGORITHM);cipher init(Cipher ENCRYPT_MODE k);returncipher doFinal(data);}/***//***生成密鑰**@return*@throwsException*/publicstaticStringinitKey()throwsException{returninitKey(null);}/***//***生成密鑰**@paramseed*@return*@throwsException*/publicstaticStringinitKey(Stringseed)throwsException{SecureRandomsecureRandom=null;if(seed!=null){secureRandom=newSecureRandom(decryptBASE (seed));}else{secureRandom=newSecureRandom();}KeyGeneratorkg=KeyGenerator getInstance(ALGORITHM);kg init(secureRandom);SecretKeysecretKey=kg generateKey();returnencryptBASE (secretKey getEncoded());}}
延續上一個類的實現 我們通過MD 以及SHA對字元串加密生成密鑰 這是比較常見的密鑰生成方式
再給出一個測試類
importstatic junit Assert *;import junit Test;/***//****@authorby;;*@version *@since */publicclassDESCoderTest{@Testpublicvoidtest()throwsException{StringinputStr= DES ;Stringkey=DESCoder initKey();System err println( 原文: +inputStr);System err println( 密鑰: +key);byte[]inputData=inputStr getBytes();inputData=DESCoder encrypt(inputData key);System err println( 加密後: +DESCoder encryptBASE (inputData));byte[]outputData=DESCoder decrypt(inputData key);StringoutputStr=newString(outputData);System err println( 解密後: +outputStr);assertEquals(inputStr outputStr);}}
得到的輸出內容如下
原文 DES
密鑰 f wEtRrV q =
加密後 C qe oNIzRY=
解密後 DES
由控制台得到的輸出 我們能夠比對加密 解密後結果一致 這是一種簡單的加密解密方式 只有一個密鑰
其實DES有很多同胞兄弟 如DESede(TripleDES) AES Blowfish RC RC (ARCFOUR) 這里就不過多闡述了 大同小異 只要換掉ALGORITHM換成對應的值 同時做一個代碼替換SecretKey secretKey = new SecretKeySpec(key ALGORITHM) 就可以了 此外就是密鑰長度不同了
/**
lishixin/Article/program/Java/gj/201311/27624
Ⅱ 求推薦一些計算機專業行業的相關的經典書籍
1、Java
Java編程語言(第三版)---Java四大名著----James Gosling(Java之父)
Java編程思想(第2版)----Java四大名著----Bruce Eckel
Java編程思想(第3版)----Java四大名著----------------Bruce Eckel
JAVA 2核心技術 卷I:基礎知識(原書第7版)---Java四大名著-----Cay Horstmann
JAVA 2核心技術 卷II:高級特性(原書第7版)----Java四大名著-----Cay Horstmann
Effective Java中文版------Java四大名著--------Joshua Bloch
精通Struts:基於MVC的Java Web設計與開發---孫衛琴
精通Hibernate:Java對象持久化技術詳解---孫衛琴
Tomcat與Java Web開發技術詳解------------孫衛琴
Java與模式------------------------------閻宏
2、c#
C#程序設計-------Charles Petzold「windows編程泰山北斗」---C#語言「倚天屠龍雙劍」
C# Primer中文版--------Stanley B.Lippman---C#語言「倚天屠龍雙劍」
.NET框架程序設計(修訂版)--------Jeffrey Richter「windows編程泰山北斗」---.NET平台四大天王
c#Windows程序設計----------Charles Petzold「windows編程泰山北斗」------.NET平台四大天王
.NET程序設計技術內幕-------------Jeff Prosise---.NET平台四大天王
.NET本質論--第1卷:公共語言運行庫(中文版)--------Chris Sells---.NET平台四大天王
3、C++
C++程序設計語言(特別版)---c++八大金剛----Bjarne Stroustrup「C++之父」
C++ Primer (第3版)中文版----c++八大金剛---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金剛---Stanley B.Lippman
C++標准程序庫—自修教程與參考手冊--c++八大金剛--Nicolai M.Josuttis
C++語言的設計和演化-----c++八大金剛----Bjarne Stroustrup「C++之父」
深度探索C++對象模型---c++八大金剛----Stanley B.Lippman
Essential C++中文版---c++八大金剛---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金剛------Scott Meyers
More Effective C++中文版----c++八大金剛------Scott Meyers
C++編程思想(第2版) 第1卷:標准C++導引--------Bruce Eckel
C++編程思想(第2版)第2卷:實用編程技術 --------Bruce Eckel
C++程序設計--------------------------譚浩強
C++ 程序設計教程(第2版)--------------錢能
C++ Primer Plus(第五版)中文版---Stephen Prata
廣博如四庫全書The c++ programming language、c++ Primer
深奧如山重水復Inside the c++ object model
程序庫大全The c++ standard libray
工程經驗之積累Effective c++、More Effective c++、Exceptional c++
c++八大金剛:
1、Essentital c++---lippman---C++之父,旁枝暫略,主攻核心,輕薄短小,初學者
2、The c++ programming language----C++之父,技術權威,用詞深峻,思想深遠,c++網路全書代表,聖經。
3、c++ Primer----lippman---縱橫書市十數年,c++最佳教本,c++網路全書代表。
4、Inside the c++ object model-----lippman----揭示c++底層,非常好,非常難。
5、Effective c++-----通過50個編程實例,展示專家經驗,行文有趣,深處淺出。
6、More Effective c++----通過35個編程實例,展示專家經驗,行文有趣,深處淺出。
7、The c++ standard libray---c++標准庫的網路全書。
8、設計模式:可復用面向對象軟體的基礎------good!
4、c
C程序設計語言(第2版·新版)---C語言「倚天屠龍雙劍」---Brian W.Kernighan「C語言之父」
C Primer Plus中文版(第五版)--------C語言「倚天屠龍雙劍」---Stephen Prata
C程序設計(第三版)---------------------------譚浩強
C語言大全(第四版)---------------------------HERBERT SCHILDT
C語言介面與實現:創建可重用軟體的技術-------------DAVID R.HANSON
C語言參考手冊(原書第5版)--------------------------Samuel P.Harbison
C程序設計教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱與缺陷-----------------------------------Andrew Koenig
5、VB
Visual Basic .NET技術內幕-----VB編程三劍客-----------Francesco Balena「vb首席大師」
Windows程序設計-Visual Basic.NET語言描述--VB編程三劍客-----Charles Petzold「windows編程泰山北斗」---
.NET框架程序設計:Visual Basic.NET語言描述--VB編程三劍客--Jeffrey Richter「windows編程泰山北斗」---,Francesco Balena「vb首席大師」
Visual Basic 6編程技術大全------------------------Francesco Balena「vb首席大師」
Visual Basic.NET 從入門到精通-------------------------Petroutsos,E.
高級VISUAL BASIC編程-----------------------------------MATTHEW CURLAND
6、Delphi
Inside VCL(深入核心——VCL架構剖析)----------李維
Delphi 7高效資料庫程序設計--------------李維
面向對象開發實踐之路(Delphi版)----------李維
7、VC
Windows 程序設計(第5版)-----Charles Petzold「windows編程泰山北斗」---
Windows核心編程----------Jeffrey Richter「windows編程泰山北斗」---
Windows高級編程指南---------Jeffrey Richter「windows編程泰山北斗」---
深入淺出MFC(第二版)-----「MFC四大天王」-------侯捷
MFC Windows程序設計(第2版)---MFC四大天王」---------Jeff Prosise
Visual C++ 技術內幕(第4版)--MFC四大天王」--------David Kruglinski
深入解析MFC-------------MFC四大天王」-----------George Shepherd
Visual C++.NET 技術內幕(第6版)-MFC四大天王」------------David Kruglinski
8、VF
Visual Foxpro程序設計參考手冊-------------------張洪舉
專家門診——Visual FoxPro開發答疑160問-------------------張洪舉
Visual FoxPro 6.0/9.0解決方案與範例大全-------------------張洪舉
Visual FoxPro軟體開發模式與應用案例-------------------張洪舉
9、黑客
應用密碼學(協議演算法與C源程序-----------Bruce Schneier
網路信息安全的真相-----------Bruce Schneier
黑客大曝光:網路安全機密與解決方案(第5版)--------STUART MCCLURE
軟體加密技術內幕------------看雪學院
加密與解密——軟體保護技術與完全解決方案------------看雪學院
加密與解密(第二版)--------段鋼
10、匯編
Intel微處理器結構、編程與介面(第六版)---------Barry B. Brey
80*86、奔騰機匯編語言程序設計---------Barry B. Brey
Windows環境下32位匯編語言程序設計(第2版)-----------羅雲彬
IBM-PC匯編語言程序設計(第2版) 本書是國內優秀教材--------沈美明 溫冬嬋
IBM PC匯編語言程序設計(第五版) 這本書籍是國外優秀教材-------PETER ABEL著,沈美明 溫冬蟬譯
11、驅動開發
Windows WDM設備驅動程序開發指南------------------------------------ Chris Cant
Windows 2000/XP WDM設備驅動程序開發(第2版)--------------------------武安河
WINDOWS 2000/XP WDM設備驅動程序開發-------------------------------- 武安河
12、網路
計算機網路第四版中文版----網路編程三劍客--------------Andrew S.Tanenbaum
TCP/IP詳解3卷本--------------------Richard Stevens----網路編程三劍客
UNIX網路編程2卷本--------------------Richard Stevens----網路編程三劍客
用TCP/IP進行網際互聯-----------Douglas E. Comer
高級TCP/IP編程-------------------Jon C. Snader
C++網路編程-----------------------Douglas Schmidt
UNIX環境高級編程(第2版)--------------------Richard Stevens
13、演算法
計算機程序設計藝術-------Donald.E.Knuth----------演算法「倚天屠龍」雙劍
演算法導論-----------------Thomas H. Cormen--------演算法「倚天屠龍」雙劍
離散數學及其應用----------Kenneth H.Rosen
具體數學—計算機科學基礎--------Donald.E.Knuth
14、圖形編程
Windows 圖形編程----------------FENG YUAN --圖形編程界的Charles Petzold之書
15、數據結構
數據結構 C++語言描述》58.00(Data Structures C++) William Ford,William Topp 劉衛東 沈官林
數據結構演算法與應用-C++語言描述》49.00Sartej Sahni 汪詩林 孫曉東等機械工業出版社
16、軟體工程
設計模式--可復用面向對象軟體的基礎
重構—改善既有代碼的設計
17、操作系統
深入理解計算機系統(修訂版)-------RANDAL E.BRYANT
18、Unix
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版
UNIX 編程藝術
UNIX環境高級編程(英文影印第2版-----UNIX編程「聖經
UNIX環境高級編程(英文影印版)(第2版)
99-UNIX環境高級編程(第2版)
UNIX環境高級編程(第2版)---UNIX編程「聖經
UNIX網路編程 第1卷:套介面API(第3版)
UNIX網路編程卷2:進程間通信(第2版)(英文影印版)
UNIX 網路編程(第二版)第2卷:進程間通信
UNIX編程環境
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版
UNIX系統編程
UNIX環境高級編程
UNIX環境高級編程(英文影印版
88-linux內核分析及編程
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版)
UNIX網路編程 第1卷:套介面API(第3版)
UNIX 網路編程(第二版)第2卷:進程間通信
UNIX網路編程卷2:進程間通信(第2版)(英文影印版)
UNIX 網路編程(第2版)第1卷:套介面API和X/Open 傳輸介面API
UNIX網路編程(卷1):連網的APLS:套接字與XTI(第二版)(英文影印版)
UNIX環境高級編程
UNIX 環境高級編程(英文版)
UNIX環境高級編程(第2版)
Unix技術手冊
19、Linux
Linux內核設計與實現
Linux內核完全注釋
LINUX內核分析及編程
GNU/Linux 編程指南(第二版)
Linux設備驅動程序(第三版)
嵌入式設計及Linux驅動開發指南——基於ARM 9處理器
Linux設備驅動程序 第三版(英文影印版)
Linux內核設計與實現(第2版)
Linux內核設計與實現(英文影印版)(第2版)
linux技術手冊
20、游戲編程
Windows游戲編程大師技巧(第二版
游戲之旅--我的編程感悟
OpenGL超級寶典:第三版
OpenGL編程指南(第四版)
Java 游戲高級編程
J2ME手機游戲編程入門
游戲之旅——我的編程感悟
游戲開發中的人工智慧(英文影印版)
3D游戲:卷2 動畫與高級實時渲染技術
面向對象的游戲開發
Java 游戲高級編程
3D游戲編程大師技巧
游戲編程精粹
面向對象的游戲開發
3D游戲 卷1:實時渲染與軟體技術
3D游戲:卷2 動畫與高級實時渲染技…
J2ME手機游戲編程入門
Direct3D游戲編程入門教程(第二版…
21、移動開發
Windows Mobile手機應用開發
SYMBIAN OS C++手機應用開發
68-Windows Mobile手機應用開發--傅曦 齊宇 徐駿
48-SYMBIAN OS C++手機應用開發 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣譯
68-SYMBIAN OS C++手機應用開發---------------RICHARD HARRISON著,周良忠譯
Windows CE.net內核定製及應用程序開發---------周毓林 寧楊 陸貴強 付林林
嵌入式系統Windows CE 開發技巧與實例--傅曦
Palm OS編程實踐---絕版
22、單片機
單片機輕松入門----------------------------------周堅(平凡老師)
單片機典型模塊設計實例導航-----------------------求是科技
例說8051----------------------------------------張義和 陳敵北
KEIL CX51 V7.0單片機高級語言編程與ΜVISION2應用實踐-----徐愛鈞
單片機應用程序設計技術(修訂版)--------------------周航慈
8051單片機實踐與應用-------------------------------吳金戎
MCS-51系列單片機實用介面技術---------------------李華
23、串並口通訊
Visual C++/Turbo C串口通信編程實踐------------------龔建偉
VISUAL BASIC與RS-232串列通信控制(最新版)----------范逸之
24、電子
無線電識圖與電路故障分析輕松入門(第二版) -------------------胡斌
無線電元器件檢測與修理技術輕松入門(第二版) -------------------胡斌
圖表細說電子技術識圖-------------------胡斌
圖表細說電子元器件-------------------胡斌
圖表細說元器件及實用電路-------------------胡斌
Ⅲ 如何利用JAVA對文檔進行加密和解密處理,完整的java類
我以前上密碼學課寫過一個DES加解密的程序,是自己實現的,不是通過調用java庫函數,代碼有點長,帶有用戶界面。需要的話聯系我
Ⅳ Effective Java中文版的內容簡介
《Effective Java中文版(第2版)》主要內容:在Java編程中78條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。通過對Java平台設計專家所使用的技術的全面描述,揭示了應該做什麼,不應該做什麼才能產生清晰、健壯和高效的代碼。第2版反映了Java 5中最重要的變化,並刪去了過時的內容。
《Effective Java中文版(第2版)》中的每條規則都以簡短、獨立的小文章形式出現,並通過示例代碼加以進一步說明。
《Effective Java中文版(第2版)》的內容包括:
全新的泛型、枚舉、註解、自動裝箱、for-each循環、可變參數、並發機制,等等。
經典主題的全新技術和最佳實踐,包括對象.類、類庫、方法和序列化。
如何避免Java編程語言中常被誤解的細微之處:陷阱和缺陷。
點擊鏈接進入Java程序設計:
《深入理解Java虛擬機:JVM高級特性與最佳實踐》
《JAVA核心技術(卷1):基礎知識(原書第8版)》
《JAVA核心技術卷2:高級特徵》
《Java語言程序設計(基礎篇)(原書第8版)》
《Java編程思想(第4版)》
《Effective Java中文版(第2版)》
《Java編程思想(英文版?第4版)》
《Java 實時編程》
《Java加密與解密的藝術》
《Eclipse插件開發(原書第3版)(暢銷插件開發指南新版)》
《Java語言程序設計:進階篇(原書第8版)》
《Maven實戰》
Ⅳ java密碼加密與解密
以下兩個類可以很方便的完成字元串的加密和解密
加密 CryptHelper encrypt(password)
解密 CrypHelper decrypt(password)
代碼如下
CryptUtils java
[java]
package gdie lab crypt;
import java io IOException;
import javax crypto Cipher;
import javax crypto KeyGenerator;
import javax crypto SecretKey;
import apache xerces internal impl dv util Base ;
public class CryptUtils {
private static String Algorithm = DES ;
private static byte[] DEFAULT_KEY=new byte[] { };
private static String VALUE_ENCODING= UTF ;
/**
* 生成密鑰
*
* @return byte[] 返回生成的密鑰
* @throws exception
* 扔出異常
*/
public static byte[] getSecretKey() throws Exception {
KeyGenerator keygen = KeyGenerator getInstance(Algorithm)
SecretKey deskey = keygen generateKey()
// if (debug ) System out println ( 生成密鑰 +byte hex (deskey getEncoded
// ()))
return deskey getEncoded()
}
/**
* 將指定的數據根據提供的密鑰進行加密
*
* @param input
* 需要加密的數據
* @param key
* 密鑰
* @return byte[] 加密後的數據
* @throws Exception
*/
public static byte[] encryptData(byte[] input byte[] key) throws Exception {
SecretKey deskey = new javax crypto spec SecretKeySpec(key Algorithm)
// if (debug )
// {
// System out println ( 加密前的二進串 +byte hex (input ))
// System out println ( 加密前的字元串 +new String (input ))
//
// }
Cipher c = Cipher getInstance(Algorithm)
c init(Cipher ENCRYPT_MODE deskey)
byte[] cipherByte = c doFinal(input)
// if (debug ) System out println ( 加密後的二進串 +byte hex (cipherByte ))
return cipherByte;
}
public static byte[] encryptData(byte[] input) throws Exception {
return encryptData(input DEFAULT_KEY)
}
/**
* 將給定的已加密的數據通過指定的密鑰進行解密
*
* @param input
* 待解密的數據
* @param key
* 密鑰
* @return byte[] 解密後的數據
* @throws Exception
*/
public static byte[] decryptData(byte[] input byte[] key) throws Exception {
SecretKey deskey = new javax crypto spec SecretKeySpec(key Algorithm)
// if (debug ) System out println ( 解密前的信息 +byte hex (input ))
Cipher c = Cipher getInstance(Algorithm)
c init(Cipher DECRYPT_MODE deskey)
byte[] clearByte = c doFinal(input)
// if (debug )
// {
// System out println ( 解密後的二進串 +byte hex (clearByte ))
// System out println ( 解密後的字元串 +(new String (clearByte )))
//
// }
return clearByte;
}
public static byte[] decryptData(byte[] input) throws Exception {
return decryptData(input DEFAULT_KEY)
}
/**
* 位元組碼轉換成 進制字元串
*
* @param byte[] b 輸入要轉換的位元組碼
* @return String 返回轉換後的 進制字元串
*/
public static String byte hex(byte[] bytes) {
StringBuilder hs = new StringBuilder()
for(byte b : bytes)
hs append(String format( % $ X b))
return hs toString()
}
public static byte[] hex byte(String content) {
int l=content length()》 ;
byte[] result=new byte[l];
for(int i= ;i<l;i++) {
int j=i《 ;
String s=content substring(j j+ )
result[i]=Integer valueOf(s ) byteValue()
}
return result;
}
/**
* 將位元組數組轉換為base 編碼字元串
* @param buffer
* @return
*/
public static String bytesToBase (byte[] buffer) {
//BASE Encoder en=new BASE Encoder()
return Base encode(buffer)
// return encoder encode(buffer)
}
/**
* 將base 編碼的字元串解碼為位元組數組
* @param value
* @return
* @throws IOException
*/
public static byte[] base ToBytes(String value) throws IOException {
//return Base decodeToByteArray(value)
// System out println(decoder decodeBuffer(value))
// return decoder decodeBuffer(value)
return Base decode(value)
}
/**
* 加密給定的字元串
* @param value
* @return 加密後的base 字元串
*/
public static String encryptString(String value) {
return encryptString(value DEFAULT_KEY)
}
/**
* 根據給定的密鑰加密字元串
* @param value 待加密的字元串
* @param key 以BASE 形式存在的密鑰
* @return 加密後的base 字元串
* @throws IOException
*/
public static String encryptString(String value String key) throws IOException {
return encryptString(value base ToBytes(key))
}
/**
* 根據給定的密鑰加密字元串
* @param value 待加密的字元串
* @param key 位元組數組形式的密鑰
* @return 加密後的base 字元串
*/
public static String encryptString(String value byte[] key) {
try {
byte[] data=value getBytes(VALUE_ENCODING)
data=CryptUtils encryptData(data key)
return bytesToBase (data)
} catch (Exception e) {
// TODO Auto generated catch block
e printStackTrace()
return null;
}
}
/**
* 解密字元串
* @param value base 形式存在的密文
* @return 明文
*/
public static String decryptString(String value) {
return decryptString(value DEFAULT_KEY)
}
/**
* 解密字元串
* @param value base 形式存在的密文
* @param key base 形式存在的密鑰
* @return 明文
* @throws IOException
*/
public static String decryptString(String value String key) throws IOException {
String s=decryptString(value base ToBytes(key))
return s;
}
/**
* 解密字元串
* @param value base 形式存在的密文
* @param key 位元組數據形式存在的密鑰
* @return 明文
*/
public static String decryptString(String value byte[] key) {
try {
byte[] data=base ToBytes(value)
data=CryptUtils decryptData(data key)
return new String(data VALUE_ENCODING)
}catch(Exception e) {
e printStackTrace()
return null;
}
}
}
package gdie lab crypt;
import java io IOException;
import javax crypto Cipher;
import javax crypto KeyGenerator;
import javax crypto SecretKey;
import apache xerces internal impl dv util Base ;
public class CryptUtils {
private static String Algorithm = DES ;
private static byte[] DEFAULT_KEY=new byte[] { };
private static String VALUE_ENCODING= UTF ;
/**
* 生成密鑰
*
* @return byte[] 返回生成的密鑰
* @throws exception
* 扔出異常
*/
public static byte[] getSecretKey() throws Exception {
KeyGenerator keygen = KeyGenerator getInstance(Algorithm)
SecretKey deskey = keygen generateKey()
// if (debug ) System out println ( 生成密鑰 +byte hex (deskey getEncoded
// ()))
return deskey getEncoded()
}
/**
* 將指定的數據根據提供的密鑰進行加密
*
* @param input
* 需要加密的數據
* @param key
* 密鑰
* @return byte[] 加密後的數據
* @throws Exception
*/
public static byte[] encryptData(byte[] input byte[] key) throws Exception {
SecretKey deskey = new javax crypto spec SecretKeySpec(key Algorithm)
// if (debug )
// {
// System out println ( 加密前的二進串 +byte hex (input ))
// System out println ( 加密前的字元串 +new String (input ))
//
// }
Cipher c = Cipher getInstance(Algorithm)
c init(Cipher ENCRYPT_MODE deskey)
byte[] cipherByte = c doFinal(input)
// if (debug ) System out println ( 加密後的二進串 +byte hex (cipherByte ))
return cipherByte;
}
public static byte[] encryptData(byte[] input) throws Exception {
return encryptData(input DEFAULT_KEY)
}
/**
* 將給定的已加密的數據通過指定的密鑰進行解密
*
* @param input
* 待解密的數據
* @param key
* 密鑰
* @return byte[] 解密後的數據
* @throws Exception
*/
public static byte[] decryptData(byte[] input byte[] key) throws Exception {
SecretKey deskey = new javax crypto spec SecretKeySpec(key Algorithm)
// if (debug ) System out println ( 解密前的信息 +byte hex (input ))
Cipher c = Cipher getInstance(Algorithm)
c init(Cipher DECRYPT_MODE deskey)
byte[] clearByte = c doFinal(input)
// if (debug )
// {
// System out println ( 解密後的二進串 +byte hex (clearByte ))
// System out println ( 解密後的字元串 +(new String (clearByte )))
//
// }
return clearByte;
}
public static byte[] decryptData(byte[] input) throws Exception {
return decryptData(input DEFAULT_KEY)
}
/**
* 位元組碼轉換成 進制字元串
*
* @param byte[] b 輸入要轉換的位元組碼
* @return String 返回轉換後的 進制字元串
*/
public static String byte hex(byte[] bytes) {
StringBuilder hs = new StringBuilder()
for(byte b : bytes)
hs append(String format( % $ X b))
return hs toString()
}
public static byte[] hex byte(String content) {
int l=content length()》 ;
byte[] result=new byte[l];
for(int i= ;i<l;i++) {
int j=i《 ;
String s=content substring(j j+ )
result[i]=Integer valueOf(s ) byteValue()
}
return result;
}
/**
* 將位元組數組轉換為base 編碼字元串
* @param buffer
* @return
*/
public static String bytesToBase (byte[] buffer) {
//BASE Encoder en=new BASE Encoder()
return Base encode(buffer)
// return encoder encode(buffer)
}
/**
* 將base 編碼的字元串解碼為位元組數組
* @param value
* @return
* @throws IOException
*/
public static byte[] base ToBytes(String value) throws IOException {
//return Base decodeToByteArray(value)
// System out println(decoder decodeBuffer(value))
// return decoder decodeBuffer(value)
return Base decode(value)
}
/**
* 加密給定的字元串
* @param value
* @return 加密後的base 字元串
*/
public static String encryptString(String value) {
return encryptString(value DEFAULT_KEY)
}
/**
* 根據給定的密鑰加密字元串
* @param value 待加密的字元串
* @param key 以BASE 形式存在的密鑰
* @return 加密後的base 字元串
* @throws IOException
*/
public static String encryptString(String value String key) throws IOException {
return encryptString(value base ToBytes(key))
}
/**
* 根據給定的密鑰加密字元串
* @param value 待加密的字元串
* @param key 位元組數組形式的密鑰
* @return 加密後的base 字元串
*/
public static String encryptString(String value byte[] key) {
try {
byte[] data=value getBytes(VALUE_ENCODING)
data=CryptUtils encryptData(data key)
return bytesToBase (data)
} catch (Exception e) {
// TODO Auto generated catch block
e printStackTrace()
return null;
}
}
/**
* 解密字元串
* @param value base 形式存在的密文
* @return 明文
*/
public static String decryptString(String value) {
return decryptString(value DEFAULT_KEY)
}
/**
* 解密字元串
* @param value base 形式存在的密文
* @param key base 形式存在的密鑰
* @return 明文
* @throws IOException
*/
public static String decryptString(String value String key) throws IOException {
String s=decryptString(value base ToBytes(key))
return s;
}
/**
* 解密字元串
* @param value base 形式存在的密文
* @param key 位元組數據形式存在的密鑰
* @return 明文
*/
public static String decryptString(String value byte[] key) {
try {
byte[] data=base ToBytes(value)
data=CryptUtils decryptData(data key)
return new String(data VALUE_ENCODING)
}catch(Exception e) {
e printStackTrace()
return null;
}
}
}
CryptHelper java
[java]
package gdie lab crypt;
import javax crypto Cipher;
import javax crypto SecretKey;
import javax crypto SecretKeyFactory;
import javax crypto spec DESKeySpec;
import javax crypto spec IvParameterSpec;
import springframework util DigestUtils;
public class CryptHelper{
private static String CRYPT_KEY = zhongqian ;
//加密
private static Cipher ecip;
//解密
private static Cipher dcip;
static {
try {
String KEY = DigestUtils md DigestAsHex(CRYPT_KEY getBytes()) toUpperCase()
KEY = KEY substring( )
byte[] bytes = KEY getBytes()
DESKeySpec ks = new DESKeySpec(bytes)
SecretKeyFactory skf = SecretKeyFactory getInstance( DES )
SecretKey sk = skf generateSecret(ks)
IvParameterSpec iv = new IvParameterSpec(bytes)
ecip = Cipher getInstance( DES/CBC/PKCS Padding )
ecip init(Cipher ENCRYPT_MODE sk iv )
dcip = Cipher getInstance( DES/CBC/PKCS Padding )
dcip init(Cipher DECRYPT_MODE sk iv )
}catch(Exception ex) {
ex printStackTrace()
}
}
public static String encrypt(String content) throws Exception {
byte[] bytes = ecip doFinal(content getBytes( ascii ))
return CryptUtils byte hex(bytes)
}
public static String decrypt(String content) throws Exception {
byte[] bytes = CryptUtils hex byte(content)
bytes = dcip doFinal(bytes)
return new String(bytes ascii )
}
//test
public static void main(String[] args) throws Exception {
String password = gly ;
String en = encrypt(password)
System out println(en)
System out println(decrypt(en))
}
}
package gdie lab crypt;
import javax crypto Cipher;
import javax crypto SecretKey;
import javax crypto SecretKeyFactory;
import javax crypto spec DESKeySpec;
import javax crypto spec IvParameterSpec;
import springframework util DigestUtils;
public class CryptHelper{
private static String CRYPT_KEY = zhongqian ;
//加密
private static Cipher ecip;
//解密
private static Cipher dcip;
static {
try {
String KEY = DigestUtils md DigestAsHex(CRYPT_KEY getBytes()) toUpperCase()
KEY = KEY substring( )
byte[] bytes = KEY getBytes()
DESKeySpec ks = new DESKeySpec(bytes)
SecretKeyFactory skf = SecretKeyFactory getInstance( DES )
SecretKey sk = skf generateSecret(ks)
IvParameterSpec iv = new IvParameterSpec(bytes)
ecip = Cipher getInstance( DES/CBC/PKCS Padding )
ecip init(Cipher ENCRYPT_MODE sk iv )
dcip = Cipher getInstance( DES/CBC/PKCS Padding )
dcip init(Cipher DECRYPT_MODE sk iv )
}catch(Exception ex) {
ex printStackTrace()
}
}
public static String encrypt(String content) throws Exception {
byte[] bytes = ecip doFinal(content getBytes( ascii ))
return CryptUtils byte hex(bytes)
}
public static String decrypt(String content) throws Exception {
byte[] bytes = CryptUtils hex byte(content)
bytes = dcip doFinal(bytes)
return new String(bytes ascii )
}
//test
public static void main(String[] args) throws Exception {
String password = gly ;
String en = encrypt(password)
System out println(en)
System out println(decrypt(en))
}
lishixin/Article/program/Java/hx/201311/26449
Ⅵ Java加密與解密的藝術的圖書目錄
第1章 企業應用安全
1.1 我們身邊的安全問題
1.2 拿什麼拯救你,我的應用
1.2.1 安全技術目標
1.2.2 OSI安全體系結構
1.2.3 TCP/IP安全體系結構
1.3 捍衛企業應用安全的銀彈
1.3.1 密碼學在安全領域中的身影
1.3. 2 密碼與JavaEE
1.4 為你的企業應用上把鎖
1.5 小結
第2章 企業應用安全的銀彈—密碼學
2.1 密碼學得發家史
2.1.1 手工加密階段
2.1.2 機械加密階段
2.1.3 計算機加密階段
2.2密碼學定義、術語及其分類
2.2.1密碼學常用術語
2.2.1密碼學分類
2.3 保密通信模型
2.4 古典密碼
2.5 對稱密碼體制
2.5.1 流密碼
2.5.2 分組密碼
2.6 非對稱密碼體制
2.7 散列函數
2.8 數字簽名
2.9 密碼學的未來
2.9.1密碼演算法的破解
2.9.2 密碼學的明天
2.10 小結
第3章 Java加密利器
3.1 Java與密碼學
3.1.1 Java安全領域組成部分
3.1.2 關於出口的限制
3.1.3 本書所使用的軟體
3.1.4 關於本章內容
3.2 java.security包詳解
3.2.1 Provider
3.2.2 Security
3.2.3 MessageDigest
3.2.4 DigestInputStream
3.2.5 DigestOutputStream
3.2.6 key
3.2.7 AlgorithmParameters
3.2.8 AlgorithmParameter-Generator
3.2.9 KeyPair
3.2.10 KeyPairGenerator
3.2.11 KeyFactory
3.2.12 SecureRandom
3.2.13 Signature
3.2.14 SignedObject
3.2.15 Timestamp
3.2.16 CodeSigner
3.2.17 KeyStore
3.3 javax.crypto包詳解
3.3.1 Mac
3.3.2 KeyGenerator
3.3.3KeyAgreement
3.3.4 SecretKeyFactory
3.3.5 Clipher
3.3.6 ClipherInputStream
3.3.7 ClipheroutStream
3.3.8 SealedObject
3.4 java.security.spec包和javax.crypto.spec包詳解
3.4.1 KeySpec和Algorithm-ParameterSpec
3.4.2 EncodeKeySpec
3.4.3 SecreKeySpec
3.4.4 DESKeySpec
3.5 java/security.cert包詳解
3.5.1 Certificate
3.5.2 CertificateFactory
3.5.3 X509Certificate
3.5.4 CRL
3.5.5 X509CRLEntry
3.5.6 X509CRL
3.5.7 CertPath
3.6 javax.net.ssl包詳解
3.6.1 KeyManagerFactory
3.6.2 TrustManagerFactory
3.6.3 SSLContext
3.6.4 HttpsURLConnection
3.7 小結
第4章 他山之石,可以攻玉
4.1 加固你的系統
4.1.1 獲得許可權文件
4.1.2 配置許可權文件
4.1.3 驗證配置
4.2 加密組件BouncyCastle
4.2.1 獲得加密組件
4.2.2 擴充演算法支持
4.2.3 相關API
4.3 輔助工具CommonsCodec
4.3.1 獲得輔助工具
4.3.2 相關API
4.4 小結 第5章 電子郵件傳輸演算法——Base64
5.1 Base64演算法的由來
5.2 Base64演算法的定義
5.3 Base64演算法與加密演算法的關系
5.4 實現原理
5.4.1 ASCII碼字元編碼
5.4.2 非ASCII碼字元編碼
5.5 模型分析
5.6 Base演算法實現
5.6.1 Bounty Castle
5.6.2 Commons Codec
5.6.3 兩種實現方式的差異
5.6.4 不得不說的問題
5.7 Url Base64 演算法實現
5.7.1 Bounty Castle
5.7.2 Commons Codec
5.6.3 兩種實現方式的差異
5.8 應用舉例
5.8.1 電子郵件傳輸
5.8.2 網路數據傳輸
5.8.3 密鑰存儲
5.8.4 數字證書存儲
5.9 小結
第6章 驗證數據完整性——消息摘要演算法
6.1 消息摘要演算法簡述
6.1.1 消息摘要演算法的由來
6.1.2 消息摘要演算法的家譜
6.2 MD演算法家族
6.2.1 簡述
6.2.2 模型分析
6.2.3 實現
6.3 SHA演算法家族
6.3.1 簡述
6.3.2 模型分析
6.3.3 實現
6.4 MAC演算法家族
6.4.1簡述
6.4.2模型分析
6.4.3 實現
6.5 其它消息摘要演算法
6.5.1 簡述
6.5.2實現
6.6循環冗餘校驗演算法——CRC演算法
6.61 簡述
6.62 模型分析
6.63 實現
6.7 實例:文件校驗
6.8 小結
第7章 初等數據加密——對稱加密演算法
7.1 對稱加密演算法簡述
7.1.1 對稱加密演算法的由來
7.1.2 對稱加密演算法的家譜
7.2 數據加密的標准——DES
7.2.1 簡述
7.2.2 模型分析
7.2.3 實現
7.3 三重DES——DESede
7.3.1 簡述
7.3.2 實現
7.4 高級數據加密標准——AES
7.4.1 簡述
7.4.2 實現
7.5 國際數據加密——AES
7.5簡述
7.5.2 實現
7.6 基於口令加密——PBE
7.6.1 簡述
7.6.2 模型分析
7.6.3 實現
7.7 實例:對稱加密網路應用
7.8 小結
第8章 高等數據加密——非對稱加密演算法
8.1 非對稱加密演算法簡述
8.1.1 非對稱加密演算法的由來
8.1.2 非對稱加密演算法的家譜
8.2 密鑰交換演算法——DH
8.2.1 簡述
8.2.2 模型分析
8.2.3 實現
8.3 典型非對稱加密演算法——RSA
8.3.1 簡述
8.3.2 模型分析
8.3.3 實現
8.4 常用非對稱加密演算法——ELGamal
8.4.1 簡述
8.4.2 模型分析
8.4.3 實現
8.5 實例:非對稱加密網路應用
8.6 小結
第9章 帶著密鑰的消息摘要演算法——數字簽名演算法
9.1 數字簽名演算法簡述
9.1.1 數字簽名演算法的由來
9.1.2 數字簽名演算法的家譜
9.2 模型分析
9.3 經典簽名標准演算法——RSA
9.3.1 簡述
9.3.2 實現
9.4 數字簽名標准演算法——DSA
9.4.1 簡述
9.4.2 實現
9.5 橢圓曲線數字簽名演算法——ECDSA
9.5.1 簡述
9.5.2 實現
9.6 實例:帶有數字簽名的加密
網路應用
9.7 小結 第10章 終極武器—數字證書
10.1數字證書詳解
10.2 模型分析
10.2.1 證書簽發
10.2.2 加密交互
10.3 證書管理
10.3.1 KeyTool證書管理
10.3.2 OpenSSl證書管理
10.4 證書使用
10.5 應用舉例
10.6小結
第11章 終極裝備—安全協議
11.1 安全協議簡述
11.1.1 HTTPS協議
11.1.2 SSL/TLS協議
11.2 模型分析
11.2.1 協商演算法
11.2.2 驗證密鑰
11.2.3 產生密鑰
11.2.4 加密交互
11.3 單向認證服務
11.3.1 准備工作
11.3.2 服務驗證
11.3.3 代碼驗證
11.4 雙向認證服務
11.4.1 准備工作
11.4.2 服務驗證
11.4.3 代碼驗證
11.5 應用舉例
11.6 小結
第12章 量體裁衣—為應用選擇合適的裝備
12.1 實例:常規Web應用開發安全
12.1.1 常規Web應用基本實現
12.1.2 安全升級1——摘要處理
12.1.3 安全升級2——加鹽處理
12.2 實例:IM應用開發安全
12.2.1 IM應用開發基本實現
12.2.2 安全升級1——隱藏數據
12.2.3 安全升級2——加密數據
12.3 實例:Web Service應用開發安全
12.3.1WebService應用幾本實現
12.3.2安全升級1——單向認證服務
12.3.3安全升級2——雙向認證服務
12.4小結
附錄A Java6支持的演算法
附錄B Bouncy Castle支持的演算法
Ⅶ 求助 關於計算機科學與技術專業 經典書籍
1、Java
Java編程語言(第三版)---Java四大名著----James Gosling(Java之父)
Java編程思想(第2版)----Java四大名著----Bruce Eckel
Java編程思想(第3版)----Java四大名著----------------Bruce Eckel
JAVA 2核心技術 卷I:基礎知識(原書第7版)---Java四大名著-----Cay Horstmann
JAVA 2核心技術 卷II:高級特性(原書第7版)----Java四大名著-----Cay Horstmann
Effective Java中文版------Java四大名著--------Joshua Bloch
精通Struts:基於MVC的Java Web設計與開發---孫衛琴
精通Hibernate:Java對象持久化技術詳解---孫衛琴
Tomcat與Java Web開發技術詳解------------孫衛琴
Java與模式------------------------------閻宏
2、c#
C#程序設計-------Charles Petzold「windows編程泰山北斗」---C#語言「倚天屠龍雙劍」
C# Primer中文版--------Stanley B.Lippman---C#語言「倚天屠龍雙劍」
.NET框架程序設計(修訂版)--------Jeffrey Richter「windows編程泰山北斗」---.NET平台四大天王
c#Windows程序設計----------Charles Petzold「windows編程泰山北斗」------.NET平台四大天王
.NET程序設計技術內幕-------------Jeff Prosise---.NET平台四大天王
.NET本質論--第1卷:公共語言運行庫(中文版)--------Chris Sells---.NET平台四大天王
3、C++
C++程序設計語言(特別版)---c++八大金剛----Bjarne Stroustrup「C++之父」
C++ Primer (第3版)中文版----c++八大金剛---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金剛---Stanley B.Lippman
C++標准程序庫—自修教程與參考手冊--c++八大金剛--Nicolai M.Josuttis
C++語言的設計和演化-----c++八大金剛----Bjarne Stroustrup「C++之父」
深度探索C++對象模型---c++八大金剛----Stanley B.Lippman
Essential C++中文版---c++八大金剛---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金剛------Scott Meyers
More Effective C++中文版----c++八大金剛------Scott Meyers
C++編程思想(第2版) 第1卷:標准C++導引--------Bruce Eckel
C++編程思想(第2版)第2卷:實用編程技術 --------Bruce Eckel
C++程序設計--------------------------譚浩強
C++ 程序設計教程(第2版)--------------錢能
C++ Primer Plus(第五版)中文版---Stephen Prata
廣博如四庫全書The c++ programming language、c++ Primer
深奧如山重水復Inside the c++ object model
程序庫大全The c++ standard libray
工程經驗之積累Effective c++、More Effective c++、Exceptional c++
c++八大金剛:
1、Essentital c++---lippman---C++之父,旁枝暫略,主攻核心,輕薄短小,初學者
2、The c++ programming language----C++之父,技術權威,用詞深峻,思想深遠,c++網路全書代表,聖經。
3、c++ Primer----lippman---縱橫書市十數年,c++最佳教本,c++網路全書代表。
4、Inside the c++ object model-----lippman----揭示c++底層,非常好,非常難。
5、Effective c++-----通過50個編程實例,展示專家經驗,行文有趣,深處淺出。
6、More Effective c++----通過35個編程實例,展示專家經驗,行文有趣,深處淺出。
7、The c++ standard libray---c++標准庫的網路全書。
8、設計模式:可復用面向對象軟體的基礎------good!
4、c
C程序設計語言(第2版·新版)---C語言「倚天屠龍雙劍」---Brian W.Kernighan「C語言之父」
C Primer Plus中文版(第五版)--------C語言「倚天屠龍雙劍」---Stephen Prata
C程序設計(第三版)---------------------------譚浩強
C語言大全(第四版)---------------------------HERBERT SCHILDT
C語言介面與實現:創建可重用軟體的技術-------------DAVID R.HANSON
C語言參考手冊(原書第5版)--------------------------Samuel P.Harbison
C程序設計教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱與缺陷-----------------------------------Andrew Koenig
5、VB
Visual Basic .NET技術內幕-----VB編程三劍客-----------Francesco Balena「vb首席大師」
Windows程序設計-Visual Basic.NET語言描述--VB編程三劍客-----Charles Petzold「windows編程泰山北斗」---
.NET框架程序設計:Visual Basic.NET語言描述--VB編程三劍客--Jeffrey Richter「windows編程泰山北斗」---,Francesco Balena「vb首席大師」
Visual Basic 6編程技術大全------------------------Francesco Balena「vb首席大師」
Visual Basic.NET 從入門到精通-------------------------Petroutsos,E.
高級VISUAL BASIC編程-----------------------------------MATTHEW CURLAND
6、Delphi
Inside VCL(深入核心——VCL架構剖析)----------李維
Delphi 7高效資料庫程序設計--------------李維
面向對象開發實踐之路(Delphi版)----------李維
7、VC
Windows 程序設計(第5版)-----Charles Petzold「windows編程泰山北斗」---
Windows核心編程----------Jeffrey Richter「windows編程泰山北斗」---
Windows高級編程指南---------Jeffrey Richter「windows編程泰山北斗」---
深入淺出MFC(第二版)-----「MFC四大天王」-------侯捷
MFC Windows程序設計(第2版)---MFC四大天王」---------Jeff Prosise
Visual C++ 技術內幕(第4版)--MFC四大天王」--------David Kruglinski
深入解析MFC-------------MFC四大天王」-----------George Shepherd
Visual C++.NET 技術內幕(第6版)-MFC四大天王」------------David Kruglinski
8、VF
Visual Foxpro程序設計參考手冊-------------------張洪舉
專家門診——Visual FoxPro開發答疑160問-------------------張洪舉
Visual FoxPro 6.0/9.0解決方案與範例大全-------------------張洪舉
Visual FoxPro軟體開發模式與應用案例-------------------張洪舉
9、黑客
應用密碼學(協議演算法與C源程序-----------Bruce Schneier
網路信息安全的真相-----------Bruce Schneier
黑客大曝光:網路安全機密與解決方案(第5版)--------STUART MCCLURE
軟體加密技術內幕------------看雪學院
加密與解密——軟體保護技術與完全解決方案------------看雪學院
加密與解密(第二版)--------段鋼
10、匯編
Intel微處理器結構、編程與介面(第六版)---------Barry B. Brey
80*86、奔騰機匯編語言程序設計---------Barry B. Brey
Windows環境下32位匯編語言程序設計(第2版)-----------羅雲彬
IBM-PC匯編語言程序設計(第2版) 本書是國內優秀教材--------沈美明 溫冬嬋
IBM PC匯編語言程序設計(第五版) 這本書籍是國外優秀教材-------PETER ABEL著,沈美明 溫冬蟬譯
11、驅動開發
Windows WDM設備驅動程序開發指南------------------------------------ Chris Cant
Windows 2000/XP WDM設備驅動程序開發(第2版)--------------------------武安河
WINDOWS 2000/XP WDM設備驅動程序開發-------------------------------- 武安河
12、網路
計算機網路第四版中文版----網路編程三劍客--------------Andrew S.Tanenbaum
TCP/IP詳解3卷本--------------------Richard Stevens----網路編程三劍客
UNIX網路編程2卷本--------------------Richard Stevens----網路編程三劍客
用TCP/IP進行網際互聯-----------Douglas E. Comer
高級TCP/IP編程-------------------Jon C. Snader
C++網路編程-----------------------Douglas Schmidt
UNIX環境高級編程(第2版)--------------------Richard Stevens
13、演算法
計算機程序設計藝術-------Donald.E.Knuth----------演算法「倚天屠龍」雙劍
演算法導論-----------------Thomas H. Cormen--------演算法「倚天屠龍」雙劍
離散數學及其應用----------Kenneth H.Rosen
具體數學—計算機科學基礎--------Donald.E.Knuth
14、圖形編程
Windows 圖形編程----------------FENG YUAN --圖形編程界的Charles Petzold之書
15、數據結構
數據結構 C++語言描述》58.00(Data Structures C++) William Ford,William Topp 劉衛東 沈官林
數據結構演算法與應用-C++語言描述》49.00Sartej Sahni 汪詩林 孫曉東等機械工業出版社
16、軟體工程
設計模式--可復用面向對象軟體的基礎
重構—改善既有代碼的設計
17、操作系統
深入理解計算機系統(修訂版)-------RANDAL E.BRYANT
18、Unix
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版
UNIX 編程藝術
UNIX環境高級編程(英文影印第2版-----UNIX編程「聖經
UNIX環境高級編程(英文影印版)(第2版)
99-UNIX環境高級編程(第2版)
UNIX環境高級編程(第2版)---UNIX編程「聖經
UNIX網路編程 第1卷:套介面API(第3版)
UNIX網路編程卷2:進程間通信(第2版)(英文影印版)
UNIX 網路編程(第二版)第2卷:進程間通信
UNIX編程環境
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版
UNIX系統編程
UNIX環境高級編程
UNIX環境高級編程(英文影印版
88-LINUX內核分析及編程
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版)
UNIX網路編程 第1卷:套介面API(第3版)
UNIX 網路編程(第二版)第2卷:進程間通信
UNIX網路編程卷2:進程間通信(第2版)(英文影印版)
UNIX 網路編程(第2版)第1卷:套介面API和X/Open 傳輸介面API
UNIX網路編程(卷1):連網的APLS:套接字與XTI(第二版)(英文影印版)
UNIX環境高級編程
UNIX 環境高級編程(英文版)
UNIX環境高級編程(第2版)
Unix技術手冊
19、Linux
Linux內核設計與實現
Linux內核完全注釋
LINUX內核分析及編程
GNU/Linux 編程指南(第二版)
Linux設備驅動程序(第三版)
嵌入式設計及Linux驅動開發指南——基於ARM 9處理器
Linux設備驅動程序 第三版(英文影印版)
Linux內核設計與實現(第2版)
Linux內核設計與實現(英文影印版)(第2版)
linux技術手冊
20、游戲編程
Windows游戲編程大師技巧(第二版
游戲之旅--我的編程感悟
OpenGL超級寶典:第三版
OpenGL編程指南(第四版)
Java 游戲高級編程
J2ME手機游戲編程入門
游戲之旅——我的編程感悟
游戲開發中的人工智慧(英文影印版)
3D游戲:卷2 動畫與高級實時渲染技術
面向對象的游戲開發
Java 游戲高級編程
3D游戲編程大師技巧
游戲編程精粹
面向對象的游戲開發
3D游戲 卷1:實時渲染與軟體技術
3D游戲:卷2 動畫與高級實時渲染技…
J2ME手機游戲編程入門
Direct3D游戲編程入門教程(第二版…
21、移動開發
Windows Mobile手機應用開發
SYMBIAN OS C++手機應用開發
68-Windows Mobile手機應用開發--傅曦 齊宇 徐駿
48-SYMBIAN OS C++手機應用開發 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣譯
68-SYMBIAN OS C++手機應用開發---------------RICHARD HARRISON著,周良忠譯
Windows CE.net內核定製及應用程序開發---------周毓林 寧楊 陸貴強 付林林
嵌入式系統Windows CE 開發技巧與實例--傅曦
Palm OS編程實踐---絕版
Ⅷ 求Java加密與解密的藝術-梁棟書籍電子版百度雲資源
《Java加密與解密的藝術》網路網盤免費資源下載:
鏈接: https://pan..com/s/1g6zJczJGFdX7wCkb8AxB-Q
《Java加密與解密的藝術》是2010年機械工業出版社出版的圖書,作者是梁棟。本書講解了加密技術對數字證書和SSL/TLS協議的應用,又以示例的方式講解了加密與解密技術在網路中的實際應用。
Ⅸ 計算機軟體開發編程必備知識買些什麼書比較好
我是學軟體的在校大學生,今年大二了!處於自己的學習,我個人認為如果你是初學者,我建議你可以下載些視頻教學,清華的比較好。還有要學好C語言、數據結構、資料庫。這樣有助於你以後學習高級語言。
希望以上內容能幫上你。