xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 33KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-06-17
  • 語(yǔ)言: Java
  • 標(biāo)簽: java??

資源簡(jiǎn)介

沒(méi)有積分的私聊我 看到消息百分百發(fā)給你 1、算法核心: 1、讀取圖片A,獲得其RGB三個(gè)通道數(shù)據(jù)并轉(zhuǎn)換成三個(gè)矩陣a1,a2,a3。 2、讀取文件B,將其轉(zhuǎn)換成比特流b。 3、遍歷b,得到比特b1,b2,b3,b4,b5,b6等等,將b1代替a1第一個(gè)元素的最低位,將b2代替a2第一個(gè)元素的最低位,將b3代替a3第一個(gè)元素的最低位,將b4代替a1第二個(gè)元素的最低位,以此類推。 2、具體實(shí)現(xiàn): 1、隱寫: 1、使用java ImageIO讀取圖片,獲取其RGB通道信息。 2、使用java NIO讀取被嵌入的文件,將其轉(zhuǎn)換為byte數(shù)組,需要特別指出的是原生方法得到是byte類型的數(shù)組,但是算法實(shí)現(xiàn)需要更加精細(xì)的操作,所以還需要對(duì)得到的byte數(shù)組進(jìn)行進(jìn)一步的轉(zhuǎn)換封裝,將其轉(zhuǎn)換成形如10101的數(shù)組。例如,讀取文件得到byte數(shù)組的第一個(gè)元素為63,需將63轉(zhuǎn)換為00111111數(shù)組。并且保存好文件的長(zhǎng)度。 3、按照算法,遍歷形如10101的數(shù)組 1、如果遍歷到的值為0,將矩陣對(duì)應(yīng)的矩陣元素與0xfe進(jìn)行與運(yùn)算,將最低位置為0 2、如果遍歷到的值為1,將矩陣對(duì)應(yīng)的矩陣元素與0x01進(jìn)行或運(yùn)算,將最低位置為1 4、將步驟3得到的經(jīng)過(guò)經(jīng)過(guò)隱寫的矩陣寫為一張新的圖片。 3、讀取 1、使用java ImageIO讀取圖片,獲取其RGB通道信息。 2、使用隱寫步驟3得到的文件長(zhǎng)度,遍歷圖片的像素矩陣,需要特別指出的是因?yàn)楹罄m(xù)步驟還需要進(jìn)行進(jìn)一步的轉(zhuǎn)化,所以這一步是將得到的“100100......”序列每八位封裝為一個(gè)數(shù)組,最終得到一些數(shù)組集合,每個(gè)數(shù)組包含八位二進(jìn)制序列。 3、將步驟2得到的數(shù)組進(jìn)行轉(zhuǎn)換,例如00111111應(yīng)該轉(zhuǎn)換為byte類型數(shù)值為63的數(shù)字,10111111轉(zhuǎn)換為-63。這一步會(huì)得到一個(gè)byte類型的數(shù)組。 4、將步驟3得到的byte類型數(shù)組寫入文件,需要指出的是寫入的文件形式應(yīng)該和隱寫模塊步驟二中讀入的文件形式一致。 3、程序使用方法 1、安裝Java8 2、使用命令行進(jìn)入jar文件所在目錄下,使用命令 java -jar 2016115130.jar 3、安裝提示輸入嵌入和被嵌入的文件名字,注意路徑問(wèn)題

資源截圖

代碼片段和文件信息

package?decrypt;

import?encrypt.ReadAndWriteFile;
import?javax.imageio.ImageIO;
import?java.awt.image.BufferedImage;
import?java.awt.image.Raster;
import?java.io.File;
import?java.io.IOException;

/**
?*?提取被隱寫入圖片的文件類
?*/
public?class?Decrypt?{

????public?static?void?doDecrypt(String?pathint?fileLenString?resultFile){
????????try{
//????????????1、讀入圖片
????????????BufferedImage?bimg?=?ImageIO.read(new?File(path));
????????????Raster?raster?=?bimg.getData();
//????????????2、獲得圖片的RGB通道信息,并且將其轉(zhuǎn)換為矩陣,
//????????????應(yīng)該注意的是java并不支持矩陣數(shù)據(jù)類型,所以這里的實(shí)現(xiàn)還是數(shù)組,只是人為地看成矩陣而已
????????????int?[]?temp?=?new?int[raster.getWidth()*raster.getHeight()*raster.getNumBands()];
????????????int[]?pixels??=?raster.getPixels(00raster.getWidth()raster.getHeight()temp);
????????????int?[]?byteArr?=?new?int[pixels.length];
//????????????3、核心步驟:將得到地RGB矩陣元素按照規(guī)律將每個(gè)元素模2,得到其最低位的數(shù)值
????????????for(int?index?=?0;?index????????????????byteArr[index]?=?pixels[index]?%?2;
????????????}
????????????byte?[]resultArr?=?new?byte[fileLen];
????????????int?resultArrIndex?=?0;
//????????????4、核心步驟2:將得到的比特?cái)?shù)組轉(zhuǎn)化為字節(jié)數(shù)組
????????????for(int?index?=?0;?index?????????????????byte?b?=?0;
????????????????int?a?=?0;
????????????????if?(byteArr[index]?==?0)?{
?????????????????????a?=??byteArr[index?+?1]?*?64?+?byteArr[index?+?2]?*?32
????????????????????????????+?byteArr[index?+?3]?*?16?+?byteArr[index?+?4]?*?8?+?byteArr[index?+?5]?*?4
????????????????????????????+?byteArr[index?+?6]?*?2?+?+byteArr[index?+?7];

?????????????????????b?=?(byte)?a;
????????????????}else?{
?????????????????????a?=??byteArr[index?+?1]?*?64?+?byteArr[index?+?2]?*?32
????????????????????????????+?byteArr[index?+?3]?*?16?+?byteArr[index?+?4]?*?8?+?byteArr[index?+?5]?*?4
????????????????????????????+?byteArr[index?+?6]?*?2?+?+byteArr[index?+?7];
?????????????????????????b?=?(byte)?(0-a);
????????????????????}
????????????????if?(resultArrIndex?????????????????????resultArr[resultArrIndex]?=?b;
????????????????????resultArrIndex++;
????????????????????}
????????????????}
//?????????????5、將得到的字節(jié)數(shù)組寫入文件
????????????ReadAndWriteFile.ByteArr2File(resultArr?resultFile);
????????}catch?(IOException?e){
????????????e.printStackTrace();
????????}
????}
}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-06-30?08:17??.idea\
?????文件???????????6??2019-06-15?23:44??.idea\.name
?????文件?????????577??2019-06-30?07:59??.idea\compiler.xml
?????文件?????????308??2019-06-18?20:24??.idea\encodings.xml
?????目錄???????????0??2019-06-17?12:38??.idea\inspectionProfiles\
?????文件????????1444??2019-06-15?23:44??.idea\inspectionProfiles\Project_Default.xml
?????目錄???????????0??2019-06-17?12:38??.idea\libraries\
?????文件?????????335??2019-06-15?23:49??.idea\libraries\opencv_330.xml
?????文件?????????530??2019-06-17?12:47??.idea\misc.xml
?????文件????????8915??2019-06-16?19:53??.idea\uiDesigner.xml
?????文件???????41686??2019-06-30?08:17??.idea\workspace.xml
?????文件??????????81??2019-06-15?23:45??2016115130.iml
?????文件?????????416??2019-06-15?23:44??pom.xml
?????目錄???????????0??2019-06-17?12:38??src\
?????目錄???????????0??2019-06-17?12:38??src\main\
?????目錄???????????0??2019-06-18?09:39??src\main\java\
?????目錄???????????0??2019-06-30?08:11??src\main\java\decrypt\
?????文件????????2629??2019-06-30?08:11??src\main\java\decrypt\Decrypt.java
?????目錄???????????0??2019-06-30?08:17??src\main\java\encrypt\
?????文件????????3128??2019-06-30?08:17??src\main\java\encrypt\Encrypt.java
?????目錄???????????0??2019-06-18?12:25??src\main\java\utils\
?????文件????????1650??2019-06-18?12:25??src\main\java\utils\Byte2BitArr.java
?????文件????????1583??2019-06-18?09:41??src\main\java\utils\ReadAndWriteFile.java
?????目錄???????????0??2019-06-18?09:54??src\main\resources\
?????目錄???????????0??2019-06-17?12:38??src\test\
?????目錄???????????0??2019-06-18?10:03??src\test\java\
?????文件?????????266??2019-06-18?10:03??src\test\java\GenTest.java
?????目錄???????????0??2019-06-18?10:03??target\
?????目錄???????????0??2019-06-18?12:25??target\classes\
?????目錄???????????0??2019-06-18?12:22??target\classes\decrypt\
?????文件????????1835??2019-06-18?12:22??target\classes\decrypt\Decrypt.class
............此處省略27個(gè)文件信息

評(píng)論

共有 條評(píng)論

相關(guān)資源