Android資料加密之異或加密演算法

2021-09-13 17:44:15 字數 1099 閱讀 8867

異或運算中,如果某個字元(或數值)x 與 乙個數值m 進行異或運算得到y,則再用y 與 m 進行異或運算就可以還原為 x ,因此應用這個原理可以實現資料的加密解密功能。

1.固定key的方式

這種方式加密解密 演算法一樣

public byte encrypt(byte bytes) 

int len = bytes.length;

int key = 0x12;

for (int i = 0; i < len; i++)

return bytes;

}

測試加密解密

byte bytes = encrypt("whoislcj".getbytes());//加密

string str1 = new string(encrypt(bytes));//解密

2.不固定key的方式

加密實現

public byte encrypt(byte bytes) 

int len = bytes.length;

int key = 0x12;

for (int i = 0; i < len; i++)

return bytes;

}

解密實現

public byte decrypt(byte bytes) 

int len = bytes.length;

int key = 0x12;

for (int i = len - 1; i > 0; i--)

bytes[0] = (byte) (bytes[0] ^ key);

return bytes;

}

測試

byte bytes = encrypt("whoislcj".getbytes());//加密

string str1 = new string(decrypt(bytes));//解密

位運算可以實現很多高階,高效的運算。比如說加密,乘法中的n次方就是右移n位,速度還快。im二進位制資料報採用異或演算法第一能夠實現加密,第二採用異或加密演算法不會改變二進位制資料的長度這對二進位制資料報封包起到不小的好處。故作此總結。

JAVA異或加密

int 或者byte型別的資料異或操作後變成另外乙個數字,再次和同乙個數異或後又變成原來的數字。加密前數字 3 加密後數字 1 解密後數字 3 加密前字元 abcd加密 加密後字元 c af爢筄 解密後字元 abcd加密 public static void main string args str...

加密101 異或(xor)

異或 xor 是邏輯運算子,符號是 當輸入同時為真或同時為假時,輸出為假。否則,輸出為真。xor可以叫做 可程式設計反向器 乙個輸入bit位決定要不要對另乙個輸入bit位取反。異或 xor 操作的圖示如上,在圖示左邊pi是明文文字 plaintext 的bit位,i是bit位的索引,因為我們要處理不...

異或加密演算法

異或加密是通過使用布林代數中的異或函式 xor 實現的,xor是乙個二元運算子 即有兩個引數,類似加號 按其名稱 異或 容易推斷兩個引數中有且僅有乙個為真 即兩引數相異 時,結果返回真,真值表如下 ab a xor btt ftft fttf ff異或加密背後的原理是如果不知道兩個引數的初值,就不可...