剛來的時候公司網路資料傳輸都是用的明文,這兩天說要加密傳輸就研究了一下des對稱加密和rsa非對稱加密兩種加密方式,之前了解的md5和base64對現有需求不太適合。base64安全性太低,md5不可逆,一般作為鹽值或儲存個別加密引數結果,鑑於要加密所有引數,所以...;在此我重點說一下des對稱加密,之後再說rsa加密,base64和md5相對比較簡單也比較常見,就不多說了。
des加密是一種對稱加密演算法,說白了就是加密秘鑰和解密秘鑰是一樣的,所以安全性較非對稱加密要低,但這對於一般商業專案已經足夠了。
des 加密原理,使用乙個 56 位的金鑰以及附加的 8 位奇偶校驗位(每組的第8位作為奇偶校驗位),產生最大 64 位的分組大小。這是乙個迭代的分組密碼,使用稱為 feistel 的技術,其中將加密的文字塊分成兩半。使用子金鑰對其中一半應用迴圈功能,然後將輸出與另一半進行「異或」運算;接著交換這兩半,這一過程會繼續下去,但最後乙個迴圈不交換。des 使用 16 輪迴圈,使用異或,置換,代換,移位操作四種基本運算。這個具體實現起演算法記得上學的時候要用好幾頁紙,就不多說了,我也不記得了。
直接上**啦,再說一句,做之前要跟伺服器端確認好加密秘鑰以及向量還有所需傳輸加密結果資料型別。
1、加密:cbc模式
public static final string algorithm_des = "des/cbc/pkcs5padding";//加解密演算法/工作模式/填充方式
public static byte descrypto(byte datasource, string password) catch(throwable e)
return null;
}2、將加密結果轉化成十六機制字串,可根據需求自行處理
private static string byte2hex(byte b) else
}return hs.touppercase();
}3、解密
public static byte decrypt(byte src, string password) throws exception
4、將加密後轉化成的十六進製制字串轉化成byte陣列,之後解密
public static byte hexstringtobytes(string hexstring)
hexstring = hexstring.touppercase();
int length = hexstring.length() / 2;
char hexchars = hexstring.tochararray();
byte d = new byte[length];
for (int i = 0; i < length; i++)
return d;
}
UImageview加邊框 加陰影
uiimageview imgvphoto uiimageview alloc init 新增邊框 calayer layer imgvphoto layer layer.bordercolor uicolor whitecolor cgcolor layer.borderwidth 5.0f 新增...
iOS給UIview 加陰影加圓角 加邊框
1.加陰影,oc 要匯入框架 import self.view.layer.shadowopacity 0.5 陰影透明度 self.view.layer.shadowcolor uicolor graycolor cgcolor 陰影的顏色 self.view.layer.shadowradius...
Pycharm 一鍵加引號,快速加引號,批量加引號
最近因為工作需要寫了點指令碼,有時候在爬取的時候需要將瀏覽器中的hearders 複製到pycharm中使用,但是複製過來的格式不是需要的鍵值格式,挨個手動敲鍵盤太累,畢竟咱們寫指令碼就是為了解放雙手 手動滑稽 解決方式如下 一.在瀏覽器中將request headers複製到pycharm的py檔...