加密演算法基礎複習

2021-08-30 21:01:42 字數 1514 閱讀 1498

1 原則:在計算機系統中,數值一律有補碼來表示(儲存). 所有的運算都以補碼形式進行

2 補碼:

正數的補碼是其本身。6的補碼是:00000110

負數的補碼,通過對該數絕對值的補碼按位取反,再對整個數加1,如-7,先計算7的補碼為00000111,然後取反,得到11111000,然後再加1,得到1111001。

例子,計算 5&-6的結果

5的補碼為00000101, -6的補碼為11111010,

& 11111010

所以結果為0

3 左移 右移 無符號移動

(1): 左移位運算子(<<)能將運算子左邊的運算物件向左移動運算子右側指定的位數(在低位補 0)。

不分正負數,相當於是左乘以2的n次方

(2):右移位運算子(>>)則將運算子左邊的運算物件向右移動運算子右側指定的位數

若值為正,則在高位插入0;若值為負,則在高位插入1。

(3):無符號移動 在執行運算時,>>>運算子的運算元高位補0

4 16進製制與byte 陣列之間的轉換

/**

* transform the specified byte into a hex string form.

*/public static final string bytestohexstr(

byte bcd)

return s.tostring();

} /**

* transform the specified hex string into a byte array.

*/public static final byte hexstrtobytes(

string s)

return bytes;

} private static final char bcdlookup =

;

4 常用進製之間相互轉換

十進位制轉成十六進製制:       

integer.tohexstring(inti)       

十進位制轉成八進位制       

integer.tooctalstring(inti)       

十進位制轉成二進位制       

integer.tobinarystring(inti)       

十六進製制轉成十進位制       

integer.valueof("ffff"

,16).tostring()       

八進位制轉成十進位制       

integer.valueof("876"

,8).tostring()       

二進位制轉十進位制       

integer.valueof("0101"

,2).tostring() 

加密演算法複習

學習了加密演算法的數學模型後,自己對這節課的學習做一次整理.加密演算法大體上可以理解為 將明文轉換為密文的過程,相反的,解密演算法即為將密文解密為明文的過程.課堂介紹了兩類加密演算法 分別是 對稱秘鑰演算法 和 非對稱秘鑰演算法 先從最簡單的開始 對稱,金鑰介紹 說到對稱秘鑰,可以先從 凱撒密碼學開...

對稱加密演算法 DES加密演算法

一 對稱加密演算法 對稱加密也稱為常規加密 私鑰或單鑰加密。乙個對稱加密由5部分組成 明文 plaintext 這是原始資訊或資料,作為演算法的輸入。加密演算法 encryption algorithm 加密演算法對明文進行各種替換和轉換。金鑰 secret key 金鑰也是演算法的輸入。演算法進行...

gentry同態加密演算法 同態加密演算法

本文對同態加密演算法進行學習。參考文章同態加密演算法。定義同態加密演算法保證對聯合密文的解密結果等價於聯合明文。若存在同態加密演算法f,針對明文a和b,加密後分別得到a f a b f b 將其和a b 解密後得到a b,則同態加密演算法f被成為加法同態加密演算法。加法同態演算法的加密和解密分別用e...