❶ 文件加密軟體哪個最好用
文件加密軟體最好鬧正用的如下:
1、隱身俠隱私文件加密工具
隱身俠加密軟體是意暢公司自主研發,用於保護電腦及移動存儲設備中的重要文件、私密信息以及多種程序的新一代電腦信息安全產品。隱身俠加密軟體已獲得公安部銷售許可證、國家保密局檢測證書、國家密碼管理局銷售許可證、國家版權局軟體著作權證書等多項權威資質認證。
❷ java環境下實現idea演算法的加密解密
基於Java的IDEA加密演算法探討
隨著Internet的迅速發展,電子商務的浪潮勢不可擋,日常工作和數據傳輸都放在Internet網上進行傳輸,大大提高了效率,降低了成本,創造了良好的效益。但是,由於 Internet網路協議本身存在著重要的安全問題(IP包本身並不繼承任何安全特性,很容易偽造出IP包的地址、修改其內容、重播以前的包以及在傳輸途中攔截並查看包的內容),使網上的信息傳輸存在巨大的安全風險電子商務的安全問題也越來越突出。加密是電子商務中最主要的安全技術,加密方法的選取直接影響電子商務活動中信息的安全程度,在電子商務系統中,主要的安全問題都可以通過加密來解決。數據的保密性可通過不同的加密演算法對數據加密來實現。
對我國來講,雖然可以引進很多的外國設備,但加密設備不能依靠引進,因為它涉及到網路安全、國家機密信息的安全,所以必須自己研製。當前國際上有許多加密演算法,其中DES(Data Encryption Standard)是發明最早的用得最廣泛的分組對稱加密演算法,DES用56位蜜鑰加密64位明文,輸出64位密文,DES的56位密鑰共有256 種可能的密鑰,但歷史上曾利用窮舉攻擊破解過DES密鑰,1998年電子邊境基金會(EFF)用25萬美元製造的專用計算機,用56小時破解了DES的密鑰,1999年,EFF用22小時完成了破解工作,使DES演算法受到了嚴重打擊,使它的安全性受到嚴重威脅。因為JAVA語言的安全性和網路處理能力較強,本文主要介紹使用IDEA(Internation Data Encryption Algorithm )數據加密演算法在Java環境下實現數據的安全傳輸。
一、IDEA數據加密演算法
IDEA數據加密演算法是由中國學者來學嘉博士和著名的密碼專家 James L. Massey 於1990年聯合提出的。它的明文和密文都是64比特,但密鑰長為128比特。IDEA 是作為迭代的分組密碼實現的,使用 128 位的密鑰和 8 個循環。這比 DES 提供了更多的 安全性,但是在選擇用於 IDEA 的密鑰時,應該排除那些稱為「弱密鑰」的密鑰。DES 只有四個弱密鑰和 12 個次弱密鑰,而 IDEA 中的弱密鑰數相當可觀,有 2 的 51 次方個。但是,如果密鑰的總數非常大,達到 2 的 128 次方個,那麼仍有 2 的 77 次方個密鑰可供選擇。IDEA 被認為是極為安全的。使用 128 位的密鑰,蠻力攻擊中需要進行的測試次數與 DES 相比會明顯增大,甚至允許對弱密鑰測試。而且,它本身也顯示了它尤其能抵抗專業形式的分析性攻擊。
二、Java密碼體系和Java密碼擴展
Java是Sun公司開發的一種面向對象的編程語言,並且由於它的平台無關性被大量應用於Internet的開發。Java密碼體系(JCA)和Java密碼擴展(JCE)的設計目的是為Java提供與實現無關的加密函數API。它們都用factory方法來創建類的常式,然後把實際的加密函數委託給提供者指定的底層引擎,引擎中為類提供了服務提供者介面在Java中實現數據的加密/解密,是使用其內置的JCE(Java加密擴展)來實現的。Java開發工具集1.1為實現包括數字簽名和信息摘要在內的加密功能,推出了一種基於供應商的新型靈活應用編程介面。Java密碼體系結構支持供應商的互操作,同時支持硬體和軟體實現。Java密碼學結構設計遵循兩個原則:(1)演算法的獨立性和可靠性。(2)實現的獨立性和相互作用性。演算法的獨立性是通過定義密碼服務類來獲得。用戶只需了解密碼演算法的概念,而不用去關心如何實現這些概念。實現的獨立性和相互作用性通過密碼服務提供器來實現。密碼服務提供器是實現一個或多個密碼服務的一個或多個程序包。軟體開發商根據一定介面,將各種演算法實現後,打包成一個提供器,用戶可以安裝不同的提供器。安裝和配置提供器,可將包含提供器的ZIP和JAR文件放在CLASSPATH下,再編輯Java安全屬性文件來設置定義一個提供器。Java運行環境Sun版本時,提供一個預設的提供器Sun。
三、Java環境下的實現
1.加密過程的實現
void idea_enc( int data11[], /*待加密的64位數據首地址*/ int key1[]){
int i ;
int tmp,x;
int zz[]=new int[6];
for ( i = 0 ; i < 48 ; i += 6) { /*進行8輪循環*/
for(int j=0,box=i; j<6; j++,box++){
zz[j]=key1[box];
}
x = handle_data(data11,zz);
tmp = data11[1]; /*交換中間兩個*/
data11[1] = data11[2];
data11[2] = tmp;
}
tmp = data11[1]; /*最後一輪不交換*/
data11[1] = data11[2];
data11[2] = tmp;
data11[0] = MUL(data11[0],key1[48]);
data11[1] =(char)((data11[1] + key1[49])%0x10000);
data11[2] =(char)((data11[2] + key1[50])%0x10000);
data11[3] = MUL(data11[3],key1[51]);
}
2.解密過程的實現
void key_decryExp(int outkey[])/*解密密鑰的變逆處理*/
{ int tmpkey[] = new int[52] ;
int i;
for ( i = 0 ; i < 52 ; i++) {
tmpkey[i] = outkey[ wz_spkey[i] ] ; /*換位*/
}
for ( i = 0 ; i < 52 ; i++) {
outkey[i] = tmpkey[i];
}
for ( i = 0 ; i < 18 ; i++) {
outkey[wz_spaddrever[i]] = (char)(65536-outkey[wz_spaddrever[i]]) ; /*替換成加法逆*/
}
for ( i = 0 ; i < 18 ; i++){
outkey[wz_spmulrevr[i]] =(char)(mulInv(outkey[wz_spmulrevr[i]] )); /*替換成乘法逆*/
}
}
四、總結
在實際應用中,我們可以使用Java開發工具包(JDK)中內置的對Socket通信的支持,通過JCE中的Java流和鏈表,加密基於Socket的網路通信.我們知道,加密/解密是數據傳輸中保證數據完整性的常用方法,Java語言因其平台無關性,在Internet上的應用非常之廣泛.使用Java實現基於IDEA的數據加密傳輸可以在不同的平台上實現並具有實現簡潔、安全性強等優點。
❸ 十大常見密碼加密方式
一、密鑰散列
採用MD5或者SHA1等散列演算法,對明文進行加密。嚴格來說,MD5不算一種加密演算法,而是一種摘要演算法。無論多長的輸入,MD5都會輸出一個128位(16位元組)的散列值。而SHA1也是流行的消息摘要演算法,它可以生成一個被稱為消息摘要的160位(20位元組)散列值。MD5相對SHA1來說,安全性較低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、對稱加密
採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密。對稱加密演算法中常用的演算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非對稱加密
非對稱加密演算法是一種密鑰的保密方法,它需要兩個密鑰來進行加密和解密,這兩個密鑰是公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。非對稱加密演算法有:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。
四、數字簽名
數字簽名(又稱公鑰數字簽名)是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。它是一種類似寫在紙上的普通的物理簽名,但是在使用了公鑰加密領域的技術來實現的,用於鑒別數字信息的方法。
五、直接明文保存
早期很多這樣的做法,比如用戶設置的密碼是「123」,直接就將「123」保存到資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。
六、使用MD5、SHA1等單向HASH演算法保護密碼
使用這些演算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。
七、特殊的單向HASH演算法
由於單向HASH演算法在保護密碼方面不再安全,於是有些公司在單向HASH演算法基礎上進行了加鹽、多次HASH等擴展,這些方式可以在一定程度上增加破解難度,對於加了「固定鹽」的HASH演算法,需要保護「鹽」不能泄露,這就會遇到「保護對稱密鑰」一樣的問題,一旦「鹽」泄露,根據「鹽」重新建立彩虹表可以進行破解,對於多次HASH,也只是增加了破解的時間,並沒有本質上的提升。
八、PBKDF2
該演算法原理大致相當於在HASH演算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。
九、BCrypt
BCrypt 在1999年就產生了,並且在對抗 GPU/ASIC 方面要優於 PBKDF2,但是我還是不建議你在新系統中使用它,因為它在離線破解的威脅模型分析中表現並不突出。
十、SCrypt
SCrypt 在如今是一個更好的選擇:比 BCrypt設計得更好(尤其是關於內存方面)並且已經在該領域工作了 10 年。另一方面,它也被用於許多加密貨幣,並且我們有一些硬體(包括 FPGA 和 ASIC)能實現它。 盡管它們專門用於采礦,也可以將其重新用於破解。
❹ 甯歌佺殑緙栫爜鍜屽姞瀵嗙畻娉曟湁鍝浜
甯歌佺殑緙栫爜鍜屽姞瀵嗙畻娉曞寘鎷珹SCII緙栫爜銆乁TF-8緙栫爜銆丄ES鍔犲瘑銆丷SA鍔犲瘑絳夈
1. ASCII緙栫爜
ASCII (American Standard Code for Information Interchange) 鏄鏈鍩虹鐨勫瓧絎︾紪鐮佹柟寮忋傚畠鐢7浣嶈〃紺轟竴涓瀛楃︼紝鎬誨叡鍙浠ヨ〃紺128涓瀛楃︼紝鍖呮嫭鑻辨枃瀛楁瘝錛堝ぇ鍐欏拰灝忓啓錛夈佹暟瀛椼佹爣鐐圭﹀彿銆佹帶鍒跺瓧絎︾瓑銆傜敱浜庡叾綆鍗曟槗鎳傦紝琚騫挎硾鐢ㄤ簬璁$畻鏈哄拰閫氫俊緋葷粺涓銆
2. UTF-8緙栫爜
UTF-8 (Unicode Transformation Format-8 bits) 鏄涓縐嶉拡瀵筓nicode鐨勫彲鍙橀暱搴﹀瓧絎︾紪鐮侊紝鍙浠ョ敤1鍒4涓瀛楄妭琛ㄧず涓涓瀛楃︺俇TF-8緙栫爜娑電洊浜嗕笘鐣屼笂鍑犱箮鎵鏈夌殑涔﹀啓璇璦錛屾槸瀹炵幇鍥介檯鍖栫殑閲嶈佸伐鍏楓傜敱浜庡叾鍏煎笰SCII緙栫爜錛屼笖鍦ㄨ〃紺鴻嫳鏂囧瓧絎︽椂鍙闇瑕佷竴涓瀛楄妭錛屽洜姝よ騫挎硾鐢ㄤ簬浜掕仈緗戝拰杞浠跺紑鍙戜腑銆
3. AES鍔犲瘑
AES (Advanced Encryption Standard) 鏄緹庡浗鑱旈偊鏀垮簻閲囩敤鐨勪竴縐嶅尯鍧楀姞瀵嗘爣鍑嗐傚畠閲囩敤瀵圭О瀵嗛掗鍔犲瘑鏂瑰紡錛屽嵆鍔犲瘑鍜岃В瀵嗕嬌鐢ㄥ悓涓涓瀵嗛掗銆侫ES鍔犲瘑鐨勫畨鍏ㄦч潪甯擱珮錛岃騫挎硾搴旂敤浜庡悇縐嶉渶瑕佷繚鎶ゆ暟鎹瀹夊叏鐨勫満鍚堬紝濡傛棤綰塊氫俊銆佺數瀛愬晢鍔°侀噾鋙嶄氦鏄撶瓑銆
4. RSA鍔犲瘑
RSA (Rivest-Shamir-Adleman) 鏄涓縐嶉潪瀵圭О鍔犲瘑綆楁硶錛屽嵆鍔犲瘑鍜岃В瀵嗕嬌鐢ㄤ笉鍚岀殑瀵嗛掗銆傚叾涓錛屽叕閽ョ敤浜庡姞瀵嗘暟鎹錛岀侀掗鐢ㄤ簬瑙e瘑鏁版嵁銆俁SA綆楁硶鐨勫畨鍏ㄦу熀浜庡ぇ鏁板垎瑙i棶棰樼殑鍥伴毦鎬э紝琚騫挎硾搴旂敤浜庢暟瀛楃懼悕銆佽韓浠介獙璇併佸畨鍏ㄩ氫俊絳夐嗗煙銆備緥濡傦紝鍦ㄧ綉緇滆喘鐗╀腑錛屽晢瀹跺彲浠ョ敤RSA綆楁硶鍔犲瘑鐢ㄦ埛鐨勪俊鐢ㄥ崱淇℃伅錛屼互紜淇濅俊鎮鍦ㄤ紶杈撹繃紼嬩腑涓嶈紿冨彇銆
浠ヤ笂鍥涚嶇紪鐮佸拰鍔犲瘑綆楁硶鍦ㄤ俊鎮瀹夊叏棰嗗煙鏈夌潃騫挎硾鐨勫簲鐢ㄣ傞氳繃浜嗚В榪欎簺綆楁硶鐨勫師鐞嗗拰搴旂敤鍦烘櫙錛屾垜浠鍙浠ユ洿濂藉湴鐞嗚В濡備綍淇濇姢鏁版嵁鐨勬満瀵嗘у拰瀹屾暣鎬с
❺ 加密解密工具:普萊費爾密碼
普萊費爾密碼(英文:Playfair Cipher 或 Playfair Square)是一種使用一個關鍵詞方格來加密字元對的加密法,1854年由一位名叫查爾斯·惠斯通(Charles Wheatstone)的英國人發明。
簡介
經萊昂·普萊費爾提倡在英國軍地和政府使用。它有一些不太明顯的特徵:密文的字母數一定是偶數;任意兩個慧培同組的字母都不會相同,如果出現這種字元必是亂碼和虛碼。
它使用方便而且可以讓頻度分析法變成瞎子,在1854到1855年的克里米亞戰爭和1899年的布爾戰爭中有廣泛應用。但在1915年的一戰中被破譯了。
編寫分三步:
1.編制密碼表
2.整理明文
3.編寫密文 構成部分:
1.密鑰
2.明文
3.密文
4.註明的某個字母代替的另一個字母。
演算法
它依據含纖一個5*5的正方形組成的密碼表來編寫,密碼表裡排列有25個字母。5*5的密碼表,共有5行5列字母。第一列(或第一行)是密前老唯鑰,其餘按照字母順序,如果密鑰過長可佔用第二列或行。密鑰是一個單詞或片語,若有重復字母,可將後面重復的字母去掉。當然也要把使用頻率最少的字母去掉(它依據一個5*5的正方形組成的密碼表來編寫,密碼表裡排列有25個字母。如果一種語言字母超過25個,可以去掉使用頻率最少的一個。如,法語一般去掉w或k,德語則是把i和j合起來當成一個字母看待,英語中z使用最少,可以去掉它)。
工具鏈接: http://www.atoolbox.net/Tool.php?Id=912