溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

java使用異或?qū)ξ募M(jìn)行加密解密

發(fā)布時(shí)間:2020-09-10 08:40:04 來(lái)源:腳本之家 閱讀:200 作者:百無(wú)1用是書(shū)生 欄目:編程語(yǔ)言

本文實(shí)例為大家分享了java使用異或?qū)ξ募M(jìn)行加密解密的具體代碼,供大家參考,具體內(nèi)容如下

1.使用異或的方式加密文件的原理

一個(gè)數(shù)異或另一個(gè)數(shù)兩次,結(jié)果一定是其本身

2.使用異或的原理加密文件

/**
 * 將文件內(nèi)容加密
 * 使用異或的方式將a.txt加密復(fù)制出一個(gè)b.txt,放到同一個(gè)文件夾下
*/
 @Test
 public void encryptFile(){
 FileInputStream in = null;
 FileOutputStream out = null;
 try {
  String sourceFileUrl = "C:\\Users\\admin\\Desktop\\testIO\\a.txt";
  String targetFileUrl = "C:\\Users\\admin\\Desktop\\testIO\\b.txt";
  in = new FileInputStream(sourceFileUrl);
  out = new FileOutputStream(targetFileUrl);
  int data = 0;
  while ((data=in.read())!=-1){
  //將讀取到的字節(jié)異或上一個(gè)數(shù),加密輸出
  out.write(data^1234);
  }
 }catch (Exception e){
  e.printStackTrace();
 }finally {
  //在finally中關(guān)閉開(kāi)啟的流
  if (in!=null){
  try {
   in.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  }
  if (out!=null){
  try {
   out.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  }
 }
 }

3.使用異或的原理解密文件

 /**
 * 將文件內(nèi)容解密
 * 將使用異或的方式加密復(fù)制出的b.txt解密到c.txt,放到同一個(gè)文件夾下
 */
 @Test
 public void decryptFile(){
 FileInputStream in = null;
 FileOutputStream out = null;
 try {
  String sourceFileUrl = "C:\\Users\\admin\\Desktop\\testIO\\b.txt";
  String targetFileUrl = "C:\\Users\\admin\\Desktop\\testIO\\c.txt";
  in = new FileInputStream(sourceFileUrl);
  out = new FileOutputStream(targetFileUrl);
  int data = 0;
  while ((data=in.read())!=-1){
  //將讀取到的字節(jié)異或上一個(gè)數(shù),加密輸出
  out.write(data^1234);
  }
 }catch (Exception e){
  e.printStackTrace();
 }finally {
  //在finally中關(guān)閉開(kāi)啟的流
  if (in!=null){
  try {
   in.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  }
  if (out!=null){
  try {
   out.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  }
 }
 }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI