最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析Android數(shù)據(jù)加密之異或加密算法

 更新時(shí)間:2016年11月18日 16:24:35   作者:總李寫代碼  
本篇文章主要介紹了Android數(shù)據(jù)加密之異或加密算法,現(xiàn)在分享給大家,也給大家做個(gè)參考。有興趣的可以了解一下。

前言:

這幾天被公司臨時(shí)拉到去做Android IM即時(shí)通信協(xié)議實(shí)現(xiàn),大致看了下他們定的協(xié)議,由于之前沒(méi)有參與,據(jù)說(shuō)因服務(wù)器性能限制,只達(dá)成非明文傳遞,具體原因我不太清楚,不過(guò)這里用的加密方式是采用異或加密。這種加密方式在之前做Android加密記事本的時(shí)候采用過(guò)這種加密方式。今天已經(jīng)把客戶端心跳維持、數(shù)據(jù)包解析對(duì)接完了,總結(jié)一下這種加密方式。

其他幾種加密方式:

什么是異或加密?

異或運(yùn)算中,如果某個(gè)字符(或數(shù)值)x 與 一個(gè)數(shù)值m 進(jìn)行異或運(yùn)算得到y(tǒng),則再用y 與 m 進(jìn)行異或運(yùn)算就可以還原為 x ,因此應(yīng)用這個(gè)原理可以實(shí)現(xiàn)數(shù)據(jù)的加密解密功能。

異或運(yùn)算使用場(chǎng)景?

  • 兩個(gè)變量的互換(不借助第三個(gè)變量)
  • 數(shù)據(jù)的簡(jiǎn)單加密解密

異或加密解密實(shí)現(xiàn)?

1.固定key的方式

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

public byte[] encrypt(byte[] bytes) {
 if (bytes == null) {
  return null;
 }
 int len = bytes.length;
 int key = 0x12;
 for (int i = 0; i < len; i++) {
  bytes[i] ^= key;
 }
 return bytes;
 }

測(cè)試加密解密

 byte[] bytes = encrypt("whoislcj".getBytes());//加密
 String str1 = new String(encrypt(bytes));//解密

 2.不固定key的方式

加密實(shí)現(xiàn)

 public byte[] encrypt(byte[] bytes) {
 if (bytes == null) {
  return null;
 }
 int len = bytes.length;
 int key = 0x12;
 for (int i = 0; i < len; i++) {
  bytes[i] = (byte) (bytes[i] ^ key);
  key = bytes[i];
 }
 return bytes;
 }

 解密實(shí)現(xiàn)
 

public byte[] decrypt(byte[] bytes) {
 if (bytes == null) {
  return null;
 }
 int len = bytes.length;
 int key = 0x12;
 for (int i = len - 1; i > 0; i--) {
  bytes[i] = (byte) (bytes[i] ^ bytes[i - 1]);
 }
 bytes[0] = (byte) (bytes[0] ^ key);
 return bytes;
 }

 測(cè)試

 byte[] bytes = encrypt("whoislcj".getBytes());//加密
 String str1 = new String(decrypt(bytes));//解密

總結(jié):

位運(yùn)算可以實(shí)現(xiàn)很多高級(jí),高效的運(yùn)算。比如說(shuō)加密,乘法中的n次方就是右移n位,速度還快。IM二進(jìn)制數(shù)據(jù)包采用異或算法第一能夠?qū)崿F(xiàn)加密,第二采用異或加密算法不會(huì)改變二進(jìn)制數(shù)據(jù)的長(zhǎng)度這對(duì)二進(jìn)制數(shù)據(jù)包封包起到不小的好處。故作此總結(jié)。

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

相關(guān)文章

最新評(píng)論

孝感市| 湘阴县| 仁寿县| 江西省| 会理县| 阳原县| 玉门市| 汾阳市| 卢氏县| 昌黎县| 德惠市| 徐州市| 诸城市| 修武县| 南丹县| 富顺县| 延庆县| 托里县| 革吉县| 曲水县| 德江县| 晋宁县| 麦盖提县| 姜堰市| 莱州市| 固镇县| 襄汾县| 苏尼特右旗| 疏勒县| 璧山县| 凤台县| 博客| 容城县| 易门县| 胶南市| 高雄县| 简阳市| 利川市| 庆阳市| 醴陵市| 府谷县|