標籤:AC key 檔案 system.in 位元組 highlight 讀取 失敗 檔案加密
System.out.println("檔案:");String s = new Scanner(System.in).nextLine();File file = new File(s);if(! file.isFile()) {System.out.println("不是檔案");return;}System.out.print("KEY:");int key = new Scanner(System.in).nextInt(); try {encrypt(file, key);System.out.println("完成");} catch (Exception e) {System.out.println("失敗");}}private static void encrypt(File file, int key) throws Exception{RandomAccessFile raf = new RandomAccessFile(file, "rw");//單位元組讀取標準格式//int b;//while((b = raf.read()) != -1) {//b ^= key; //b = b^key;//raf.seek(raf.getFilePointer()-1); //raf.write(b);//}// 8k 8192byte[] buff = new byte[8192];int n;//儲存一批的數量while((n = raf.read(buff)) != -1) {//數組中前n個位元組加密for(int i=0;i<n;i++) {buff[i] ^= key;}//下標移回n個位置raf.seek(raf.getFilePointer()-n);//輸出數組中前 n 個位元組raf.write(buff,0,n);}raf.close();}
java 檔案加密