java 位元組陣列取反
背景
最近在測試公司軟體的一個功能,它會讀取一個配置檔案資訊,但是配置檔案做了個加密處理,處理的方式就是所有的位元組都取反。這個是一個很簡單的功能,結果卻花了好一會兒 主要還是基礎太薄弱了,mark一下吧
實現
這裡就直接貼程式碼吧
public static void main(String[] args) throws IOException {
byte[] bytes = toByteArray("C:\\config.ini");
byte temp;
for(int i=0;i<bytes.length;i++){
temp = bytes[i];
bytes[i] = (byte) (~temp);
}
System.out.println(new String(bytes,"gbk"));
}
/**
* the traditional io way
* @param filename
* @return
* @throws IOException
*/
public static byte[] toByteArray(String filename) throws IOException{
File f = new File(filename);
if(!f.exists()){
throw new FileNotFoundException(filename);
}
ByteArrayOutputStream bos = new ByteArrayOutputStream((int)f.length());
BufferedInputStream in = null;
try{
in = new BufferedInputStream(new FileInputStream(f));
int buf_size = 1024;
byte[] buffer = new byte[buf_size];
int len = 0;
while(-1 != (len = in.read(buffer,0,buf_size))){
bos.write(buffer,0,len);
}
return bos.toByteArray();
}catch (IOException e) {
e.printStackTrace();
throw e;
}finally{
try{
in.close();
}catch (IOException e) {
e.printStackTrace();
}
bos.close();
}
}
我們這裡讀取的就是一個Config.ini檔案,接著需要讀取檔案的後獲取到它的byte陣列。取反的方法直接採用java自帶的~就可以了。結果還百度了半天,因為是用gbk編碼,所以說轉換成String型別的時候需要說明編碼型別,不然轉碼就是亂碼了。
相關文章
- 位元組陣列流陣列
- Java陣列物件佔用多少個位元組?Java陣列物件
- AES位元組陣列加密解密流程陣列加密解密
- 關於位元組陣列QByteArray陣列
- .NET刪除位元組陣列中的0位元組陣列
- C#位元組陣列與字串轉換C#陣列字串
- python以16進位制列印位元組陣列Python陣列
- byte位元組陣列 轉換成double型別陣列型別
- Javascript使用Buffer替代位元組陣列會提升效能JavaScript陣列
- 浮點數(float)線上轉位元組陣列的工具陣列
- 位元組陣列轉浮點數線上轉換器陣列
- C#結構體和位元組陣列的轉換C#結構體陣列
- float浮點數線上轉位元組陣列轉換工具陣列
- Java 位元組碼Java
- 位運算實現整數與位元組陣列轉換陣列
- C# 將Byte[]位元組陣列存入 sqlite 資料庫C#陣列SQLite資料庫
- C# 位元組陣列位操作C#陣列
- 位元組碼層面深入分析Java列舉類Java
- Java位元組碼指令Java
- Solidity語言學習筆記————13、固定大小位元組陣列Solid筆記陣列
- Solidity語言學習筆記————14、動態位元組陣列Solid筆記陣列
- C#位元組陣列byte[]和字串string如何互相轉換C#陣列字串
- Python學習筆記015——序列(位元組陣列 bytearray)Python筆記陣列
- JAVA動態位元組碼Java
- 【Java】JVM位元組碼分析JavaJVM
- 為什麼使用型別化陣列來進行位元組操作而不是普通的 javascript 數字陣列型別陣列JavaScript
- Java陣列03:陣列使用Java陣列
- JS 兩組陣列取不同值組成新陣列的方法JS陣列
- Java 陣列Java陣列
- java——陣列Java陣列
- Java陣列Java陣列
- java取反邏輯Java
- 初識Java(Java陣列-陣列的基本操作)Java陣列
- Java位元組碼指令表Java
- Java 位元組的常用封裝Java封裝
- 輕鬆看懂Java位元組碼Java
- Java位元組碼忍者禁術Java
- Java IO3:位元組流Java