導航:首頁 > 文檔加密 > xor加密字元串java

xor加密字元串java

發布時間:2022-08-20 16:18:58

java用異或運算進行加密是只適用於很短一句話的嗎加密解密的程序中。打開文件輸出是換行的。但是用

位異或可以加密很長,你要控制當遇到換行操作符,原樣輸出,之後繼續加密

② 用java做實戰從鍵盤輸入字元和字元串按位異或進行加密。之後再解密

importjava.util.*;
importjava.io.*;
classTest{
publicstaticvoidmain(String[]args)throwsException{
Scannersc=newScanner(System.in);
charc=sc.next().charAt(0);
Strings=sc.next();
Stringtmp="";
for(inti=0;i<s.length();i++){
tmp+=s.charAt(i)^c;
}
System.out.println(tmp);
FileWriterfw=newFileWriter("data.txt");
fw.write(tmp);
fw.flush();
fw.close();

System.out.println("解密:");
c=sc.next().charAt(0);
sc.close();
Scanners=newScanner(newFile("data.txt"));
Stringxy="";
while(s.hasNextLine()){
xy+=s.nextLine();
}
Stringab="";
for(inti=0;i<xy.length;i++){
ab+=xy.charAt(i)^c;
}
System.out.println(ab);
}
}

③ java 位運算實現加密中為何array[i]異或的是20000將20000換成其他數字結果就全部顯示問號。求解釋

array[i] = (char) (array[i]^20000)的結果超過了char字元對應的ascII值,建議你吧20000改成20,或者你判斷char字元對應的ascII邊界值也行。

④ 用java寫一個 字元串異或 的程序

privateStringtwoStringXor(Stringstr1,Stringstr2){
byteb1[]=str1.getBytes();
byteb2[]=str2.getBytes();
bytelongbytes[],shortbytes[];
if(b1.length>=b2.length){
longbytes=b1;
shortbytes=b2;
}else{
longbytes=b2;
shortbytes=b1;
}
bytexorstr[]=newbyte[longbytes.length];
inti=0;
for(;i<shortbytes.length;i++){
xorstr[i]=(byte)(shortbytes[i]^longbytes[i]);
}
for(;i<longbytes.length;i++){
xorstr[i]=longbytes[i];
}
returnnewString(xorstr);
}

⑤ 如何利用異或運算進行簡單加密解密

利用「^」異或運算對字元串進行加密
思路:1.先創建字元串輸入的Scanner;
2.通過char[] array = password.toCharArray();// 獲取字元數組;
3.遍歷字元數組,按目前理解要用到遍歷:數組所有元素進行訪問,比如你要輸出數組里所有的信息時,就要用到
4.進行異或運算
按位做「異或」運算是:位值相同得1,不同得0
例如:
< 加密過程:>
原解釋的二進制為 1 1 0 0 ----原文
設定的key的二進制為 0 1 1 0 ----密匙
兩者做「異或」結果為 0 1 0 1 ----密文
< 解密過程:>
0 1 0 1----密文
0 1 1 0----密匙
兩者「異或」就得到了原文 1 1 0 0 ----原文
詳細代碼:
package com.lixiyu;
import java.util.Scanner;
public class Example {
public static void main(String[] args){
Scanner sca=new Scanner(System.in);
System.out.println("請輸入一個英文字元串或解密字元串");
String line=sca.nextLine();//獲取用戶輸入信息
char[] array=line.toCharArray();//獲取字元數組
for (int i=0;i<array.length;i++){//歷遍字元數組
array[i]=(char) (array[i]^20000);//對數組每個元素進行異或運算
}
System.out.println("加密解密結果如下:");
System.out.println(new String(array));//輸出密鑰
}
}
異或運算:
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
字元'A' 的ASCII編碼為65 : 00000000 01000001
取整數7 : 00000000 00000000 00000000 00000111
XOR運算後 : 00000000 00000000 00000000 01000110
簡單加密演算法代碼如下 :
public class Test {
public static final int KEY = 7;
public static void main(String[] args) {
String str = "Hello World!";
StringBuffer str2 = new StringBuffer(); //存儲加密後的字元串
StringBuffer str3 = new StringBuffer(); //存儲解密後的字元串
//加密過程
for(int i=0;i<str.length();i++)
{
char c = (char)(str.charAt(i) ^ KEY);
str2.append(c);
}
//解密過程
for(int i=0;i<str2.length();i++)
{
char c = (char)(str2.charAt(i) ^ KEY);
str3.append(c);
}
System.out.println("原始 的字元串為:" + str);
System.out.println("加密後 的字元串為:" + str2);
System.out.println("解密後 的字元串為:" + str3);
}
}
輸出:
原始 的字元串為:Hello World!
加密後 的字元串為:Obkkh'Phukc&
解密後 的字元串為:Hello World!

⑥ 關於Java中的異或運算符實現加密和解密的問題

String sdd= new String(bt,0,bt.length);
// bt是數組, 0 表示從第一個開始, 即對應 bt[0]
這句意義就是 將 bt 數組的內容轉化成 string ;

⑦ java將兩個字元串轉為十六進制進行異或的結果是多少進制的,怎麼做

小豬,已解答,採納即可

publicclassRectangle
{
publicstaticvoidmain(String[]args)
{
StringS1="0412134FFFFFFFFFF";
StringT1="00007770000200";
longsi=Long.parseLong(S1,16);
longti=Long.parseLong(T1);
longst=si^ti;
//很顯然是十進制0~9
//4693090553043039415
System.out.println(st);
Stringhex=Long.toHexString(st);
//412134fe30df34b7
System.out.println(hex);
}
}

⑧ java 異或 字元串找不同 是怎麼實現的

函數是運用了異或運算的特點,當兩次異或同一字元的時候,他們的結果就相互抵消(等同於沒有異或),所以嚴格說來,這個函數並不能判斷兩個字元串是否完全相同。他只是判斷把這兩個字元串,的所有字元全部統計一遍以後,是不是所有的字母都出現偶數次。如果是函數就返回0,否則就返回非0。

閱讀全文

與xor加密字元串java相關的資料

熱點內容
因碩智能門鎖卡片是加密的么 瀏覽:336
為什麼會伺服器不可用 瀏覽:290
wow宏命令設置 瀏覽:264
解壓神器一張紙折疊魔術球 瀏覽:23
怎麼樣可以取消加密軟體oppo 瀏覽:580
屏幕共享源碼哪家比較不錯 瀏覽:665
vb中雙擊命令按鈕 瀏覽:208
伺服器做了磁碟陣列怎麼重裝 瀏覽:606
邏輯加密ic卡能用嗎 瀏覽:884
c語言代碼編譯器手機版 瀏覽:290
recovery無命令 瀏覽:957
想媽媽的命令 瀏覽:578
網站接入方式怎麼填寫雲伺服器 瀏覽:859
土豆視頻APP怎麼看不了 瀏覽:550
社交軟體app該怎麼聊 瀏覽:23
pc的啟動文件夾 瀏覽:671
文件夾壓縮過程中點擊取消壓縮 瀏覽:216
順豐app專享優惠券怎麼用 瀏覽:667
酷狗音樂分享文件夾 瀏覽:826
伺服器mgmt旁邊的介面是什麼 瀏覽:844