亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java異或技操作給任意的文件加密原理及使用詳解

2024-07-13 10:15:16
字體:
來源:轉載
供稿:網友

異或簡單介紹:異或是一種基于二進制的位運算,用符號XOR或者 ^ 表示,其運算法則是對運算符兩側數的每一個二進制位,同值取0,異值取1。

簡單理解就是不進位加法,如1+1=0,,0+0=0,1+0=1。

需求描述

在信息化時代對數據進行加密是一個很重要的主題,在做項目的過程中,我也實現了一個比較復雜的加密算法,但是由于涉及到的技術是保密的,所以在這里我實現一個比較簡單的版本,利用文件的輸入輸出流和異或操作進行任意文件的加密,關于解密算法,很簡單,自己思考下就能解決。

數學原理

該加密算法利用的是兩個數異或的功能,先簡單的說下異或的原理,異或實際上是對文件的二進制編碼進行操作,簡單的說就是當兩個二進制位相同時為0,不同時為1,看下面的例子:

java;">//7的二進制表示:00000111//2的二進制表示:00000010//兩者異或得到的結果:00000101 //也就是數字5//---------------------------//得到的結果再次和2異或//5的二進制表示:00000101//2的二進制表示:00000010//兩者異或得到的結果:00000111 //也就是7,是不是很神奇的又回到了7呢?

代碼實現

import java.io.*;class FileSecret{	public static void main(String[] args) throws Exception	 {		//找到要加密的文件,盤符自己指定,輸入輸出不需要在同一個盤符		File inFile = new File("盤符://加密的文件");		//將要加密的文件輸出到指定的盤符		File outFile = new File("盤符://解密的文件");		//建立數據通道,讓圖片的二進制數據流入		FileInputStream input = new FileInputStream(inFile);		FileOutputStream output = new FileOutputStream(outFile);		//在讀的過程中,將讀到的數據異或一個數字,這個數字應該是由某種加密算法生成的,在這里我僅僅簡單的編一個數字928(我的生日),然后進行異或,將得到的數據輸出		int content = 0 ;		//該變量用于存儲讀取到的數據,當然這里可以使用long等更長的數據類型,當然我們也可以使用其他的數據類型,只需要滿足^兩端的數據類型能夠相互轉換就行,至少能進行強制類型轉換		while((content=input.read())!=-1) // 如果沒有到文件的末尾,那么繼續讀取數據,讀取到的數據已經存儲到content變量中了,-1為文件的結束符		{			output.write(content^928);			//寫到輸出文件流中		}		//關閉資源		input.close();		output.close();	}}

代碼功能評價

對于這段代碼,功能大體上已經能夠用滿足需求,但是存在不足,第一沒有使用加密算法生成異或的另一端數字,第二我沒有去實現文件的解密,實際上解密十分簡單,請自己仔細讀數學原理部分就能知道怎么去寫解密算法,實際上加密和解密也不是同一個地方同時實現的,而是加密雙采用相同的加密算法進行運算得出的。

使用隨機數改進算法

在上面的過程中,我們實際上采用的是給定的一個值去和我們讀入的二進制文件進行異或,那么我們是否能用一個隨機數去代替這種約定呢?答案是可以的,首先我們采用的是int類型的變量去存儲,那么能表示的范圍是:正負21億的可表示數字,具體的代碼如下:

//產生隨機數的方法import java.util.*;public class RandomTest{ public static void main(String[] args){  Random random = new Random();  int num = random.nextInt(11);//表示產生0-10之間的隨機數,產生的這個隨機數我們應該可以保存,供加密和解密者使用  System.out.println("隨機數為:"+num); }}

改進后的加密算法

加密端代碼:

import java.io.*;import java.util.*;class FileSecret{	public static void main(String[] args) throws Exception	 {		//找到要加密的文件,盤符自己指定,輸入輸出不需要在同一個盤符		File inFile = new File("盤符://加密的文件");		//將要加密的文件輸出到指定的盤符		File outFile = new File("盤符://解密的文件");		//建立數據通道,讓圖片的二進制數據流入		FileInputStream input = new FileInputStream(inFile);		FileOutputStream output = new FileOutputStream(outFile);		//產生加密異或的另一個數字		Random random = new Random();		int num = random.nextint(11);		//表示產生0-10之間的隨機數,產生的這個隨機數我們應該可以保存,供加密和解密者使用		System.out.println("隨機數為:"+num);		//在讀的過程中,將讀到的數據異或一個數字,這個數字應該是由某種加密算法生成的,在這里我僅僅簡單的編一個數字928(我的生日),然后進行異或,將得到的數據輸出		int content = 0 ;		//該變量用于存儲讀取到的數據,當然這里可以使用long等更長的數據類型,當然我們也可以使用其他的數據類型,只需要滿足^兩端的數據類型能夠相互轉換就行,至少能進行強制類型轉換		while((content=input.read())!=-1) // 如果沒有到文件的末尾,那么繼續讀取數據,讀取到的數據已經存儲到content變量中了,-1為文件的結束符		{			output.write(content^num);			//寫到輸出文件流中		}		//關閉資源		input.close();		output.close();	}}

加密端需要將上面代碼中生成的num告知給解密端,否則不能實現文件的解密。

解密端代碼:

import java.io.*;class FileSecret{	public static void main(String[] args) throws Exception	 {		//找到要加密的文件,盤符自己指定,輸入輸出不需要在同一個盤符		File inFile = new File("盤符://加密的文件");		//將要加密的文件輸出到指定的盤符		File outFile = new File("盤符://解密的文件");		//建立數據通道,讓圖片的二進制數據流入		FileInputStream input = new FileInputStream(inFile);		FileOutputStream output = new FileOutputStream(outFile);		//在讀的過程中,將讀到的數據異或一個數字,這個數字應該是由某種加密算法生成的,在這里我僅僅簡單的編一個數字928(我的生日),然后進行異或,將得到的數據輸出		int content = 0 ;		//該變量用于存儲讀取到的數據,當然這里可以使用long等更長的數據類型,當然我們也可以使用其他的數據類型,只需要滿足^兩端的數據類型能夠相互轉換就行,至少能進行強制類型轉換		while((content=input.read())!=-1) // 如果沒有到文件的末尾,那么繼續讀取數據,讀取到的數據已經存儲到content變量中了,-1為文件的結束符		{			output.write(content^從加密端傳來的加密數字);			//寫到輸出文件流中		}		//關閉資源		input.close();		output.close();	}}

再一次改進

其實在我們的代碼中,標準的加密碼應該是隨機生成,并且包含有字母、數字等各種符號,那么我們怎么生成這樣的加密串呢?生成這樣的加密串之后是怎樣將其轉化為二進制代碼的?提供一種思路:采用Java的正則表達式可以生成任意你想要的串,然后用字符串轉化方法生成相應的二進制代碼。我自己實現了一個極其復雜的加密生成方法,但是不能公開,這涉及到實驗室項目的資料,并且有很多的密碼學領域有很多經典的加密算法也是可以利用的。

總結

以上就是本文關于Java異或技操作給任意的文件加密原理及使用詳解的全部內容,希望對大家有所幫助!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区久久精品| 亚洲大胆人体在线| 欧美性猛交xxxx富婆弯腰| 亚洲国产精品网站| 亚洲国产美女久久久久| 欧美性videos高清精品| 91中文字幕在线| 日韩一区二区久久久| 欧美一级电影免费在线观看| 97国产精品久久| 在线精品国产欧美| 国产69精品久久久久久| 久久av.com| 日韩中文在线中文网三级| 伊人久久久久久久久久久| 97在线精品视频| 国产丝袜高跟一区| 国产91露脸中文字幕在线| 98精品国产高清在线xxxx天堂| 成人网欧美在线视频| 亚洲精品视频在线观看视频| 国产精品久久久久久av下载红粉| 在线视频欧美日韩| 欧美精品videofree1080p| 欧美成人网在线| 91在线观看免费高清| 91精品国产电影| 亚洲欧美自拍一区| 欧美成人免费在线观看| 中文字幕在线亚洲| 成人免费网站在线| 久久久久久久97| 久久久国产一区| 日韩电影中文字幕一区| 欧美综合国产精品久久丁香| 91av在线国产| 欧美小视频在线观看| 亚洲激情视频在线观看| 亚洲欧美日韩中文视频| 欧美激情精品久久久久久久变态| 8x海外华人永久免费日韩内陆视频| 日韩av在线网址| 国产精品自产拍在线观看中文| 亚洲另类激情图| 国产综合福利在线| 国内精品久久久久久久| 国产日韩中文字幕| 91精品国产91久久久久福利| 国产精品精品视频一区二区三区| 在线a欧美视频| 久热国产精品视频| 国产日本欧美在线观看| 国产91ⅴ在线精品免费观看| 91tv亚洲精品香蕉国产一区7ujn| 久久免费视频在线观看| 国产视频在线一区二区| 91在线无精精品一区二区| 91wwwcom在线观看| 亚洲国产又黄又爽女人高潮的| 日韩av网址在线观看| 欧美人交a欧美精品| 在线丨暗呦小u女国产精品| 国语自产在线不卡| 日韩av一区在线观看| 国产成+人+综合+亚洲欧美丁香花| 日韩中文有码在线视频| 欧美精品videossex性护士| 国产美女精品视频免费观看| 中文欧美日本在线资源| 在线视频亚洲欧美| 91久久综合亚洲鲁鲁五月天| 亚洲大胆人体视频| 欧美成人黑人xx视频免费观看| 国产精品久久久久久网站| 亚洲男人的天堂在线播放| 精品精品国产国产自在线| 亚洲最大福利视频网站| 日韩电影中文字幕| 深夜成人在线观看| 这里只有精品丝袜| 91成人性视频| 超薄丝袜一区二区| 久久99久国产精品黄毛片入口| 日韩在线观看免费高清| 欧美成人午夜免费视在线看片| 中文字幕久久精品| 三级精品视频久久久久| 日韩美女福利视频| 欧美日韩国产成人在线观看| 国产福利成人在线| 毛片精品免费在线观看| 黑丝美女久久久| 国产成人精品av| 久久久久国产一区二区三区| 国产精品一区=区| 久久精品99久久久久久久久| 亚洲男人天堂2024| 色悠久久久久综合先锋影音下载| 欧美精品久久久久久久久| 国产精品高潮在线| 青草热久免费精品视频| 国产欧美精品日韩精品| 日韩激情视频在线播放| 日本一区二区三区四区视频| 欧美高清电影在线看| 亚洲福利影片在线| 日韩精品视频免费| 日韩av网站在线| 九九热精品视频在线播放| 91视频国产精品| 久久香蕉精品香蕉| 国产欧美亚洲精品| 69精品小视频| 久久久免费在线观看| 在线观看久久av| 在线精品国产成人综合| 国产91在线视频| 精品欧美一区二区三区| 成人a在线视频| 日本久久久a级免费| 91精品久久久久久久久久入口| 亚洲精品av在线| 午夜精品蜜臀一区二区三区免费| 国产91免费观看| 国产在线a不卡| 国内精品久久久久久中文字幕| 国产精品日韩在线| 亚洲女人天堂av| 亚洲电影免费观看高清完整版在线| 国产69精品久久久| 久久手机精品视频| 久久露脸国产精品| 亚洲色图av在线| 国产精品入口福利| 成人久久精品视频| 亚洲国产精品va在线看黑人| 国产精品观看在线亚洲人成网| 欧美亚洲国产另类| 亚洲精品视频网上网址在线观看| 色偷偷88888欧美精品久久久| 亚洲激情小视频| 国产欧美 在线欧美| 国产91热爆ts人妖在线| 久久久成人的性感天堂| 国外成人在线直播| 91热福利电影| 日日噜噜噜夜夜爽亚洲精品| 精品偷拍一区二区三区在线看| 国产精品 欧美在线| 日韩成人av一区| 成人春色激情网| 亚洲曰本av电影| 亚洲国产成人精品女人久久久| 81精品国产乱码久久久久久| 欧美大胆a视频| 精品久久久精品| 亚洲第一区第二区| 91精品久久久久久| 中文字幕欧美日韩va免费视频| 91精品久久久久久久久久入口| 精品久久久久久久久久久久久| 久久国产精品久久精品| 性色av一区二区三区红粉影视| 久久天天躁夜夜躁狠狠躁2022|