亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言:

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

其他幾種加密方式:

什么是異或加密?

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

異或運算使用場景?

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

異或加密解密實現(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;
 }

測試加密解密

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

 2.不固定key的方式

加密實現(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;
 }

 解密實現(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;
 }

 測試

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

總結(jié):

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android:利用SharedPreferences實現(xiàn)自動登錄

    Android:利用SharedPreferences實現(xiàn)自動登錄

    本篇文章主要介紹了Android實現(xiàn)自動登錄,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • Android操作系統(tǒng)之內(nèi)存回收策略

    Android操作系統(tǒng)之內(nèi)存回收策略

    Android 是一款基于 Linux 內(nèi)核,面向移動終端的操作系統(tǒng)。為適應(yīng)其作為移動平臺操作系統(tǒng)的特殊需要,谷歌對其做了特別的設(shè)計與優(yōu)化,使應(yīng)用程序關(guān)閉但不退出,并由操作系統(tǒng)進行進程的回收管理
    2016-01-01
  • android 更改TextView中任意位置字體大小和顏色的方法

    android 更改TextView中任意位置字體大小和顏色的方法

    下面小編就為大家分享一篇android 更改TextView中任意位置字體大小和顏色的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android TextView的TextWatcher使用案例詳解

    Android TextView的TextWatcher使用案例詳解

    這篇文章主要介紹了Android TextView的TextWatcher使用案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Android仿微信布局的實現(xiàn)示例

    Android仿微信布局的實現(xiàn)示例

    本文主要介紹了Android仿微信布局的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • android viewpager實現(xiàn)豎屏滑動效果

    android viewpager實現(xiàn)豎屏滑動效果

    這篇文章主要為大家詳細介紹了android viewpager實現(xiàn)豎屏滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android軟鍵盤彈出時的界面控制方法

    Android軟鍵盤彈出時的界面控制方法

    這篇文章主要介紹了Android軟鍵盤彈出時的界面控制方法,結(jié)合實例形式分析了Android軟鍵盤彈出后的三種模式,涉及Android針對AndroidManifet.xml的修改技巧,需要的朋友可以參考下
    2016-08-08
  • android常見手動和自動輪播圖效果

    android常見手動和自動輪播圖效果

    這篇文章主要為大家詳細介紹了android常見手動和自動輪播圖效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Android學習筆記(二)App工程文件分析

    Android學習筆記(二)App工程文件分析

    之前寫過一篇關(guān)于安卓環(huán)境配置以及第一個app的制作過程,下面我們來進一步,分析下APP工程文件
    2014-07-07
  • Android實現(xiàn)游戲中的漸隱和漸現(xiàn)動畫效果

    Android實現(xiàn)游戲中的漸隱和漸現(xiàn)動畫效果

    本文給大家分享android中實現(xiàn)游戲中的漸隱漸現(xiàn)的動畫效果,在游戲開發(fā)中經(jīng)常會遇到,對android漸隱漸現(xiàn)效果感興趣的朋友可以參考下本教程
    2016-09-09

最新評論