對稱加密解密是怎麼一回事情?

2021-09-26 18:57:04 字數 1117 閱讀 8978

email:[email protected] 畫筆

關於第一條,在數**算中,加、減、乘、除,都會造成資料的溢位(資料丟失),當然你可以有原文密文不等長也可以(這種方式,主要在非對稱加密裡面使用)。對稱加密,使用 ^ 異或,異或不會造成資料溢位。

關於第二條,需要用到迭代來破壞可統計性,使黑客不可能通過大量資料的對比分析,來找到金鑰,因為每個資料對應的金鑰都是可變的。

例如給你乙個字串"01234",密文是"23456",很明加密演算法是+2。

如果給你乙個字串"01234",密文是"08717",加密演算法就很難一下猜出。假設迭代的結果是"08717"。

a ^ b = c

c ^ b = a。其中 a是明文,b是金鑰,c是密文。

例如:

0xff00 ^ 0xffff = 0x00ff

0x00ff ^ 0xffff = 0xff00

下面是偽**,臨時演示用一下,現在有大量的加密演算法,不需要我再寫乙個多餘的加密演算法。

#include

#include

using

namespace std;

#define key "0123456789"

#define magic1 0xffeeddccaa002266

#define magic2 0x789364e5c6a4dde1

intget_key

(const

char

*str)

intencryption

(void

*dat,

int len,

void

*buf)

for(

int j=b, j<

sizeof

(int

); j++)*

((int*

)buf + i)

^= key;

}int

decryption

(void

*dat,

int len,

void

*buf)

補充一下:關於標準的加密演算法,密文的格式應該在頭中加入tlv。

記憶體洩漏是怎麼一回事

一般我們常說的記憶體洩漏是指堆記憶體的洩漏。堆記憶體是指程式從堆中分配的,大小任意的 記憶體塊的大小可以在程式執行期決定 使用完後必須顯示釋放的記憶體。應用程式一般使用malloc,realloc,new等函式從堆中分配到一塊記憶體,使用完後,程式必須負責相應的呼叫free或delete釋放該記憶體...

C 模版是怎麼一回事

學習c 一直對這塊不是很了解,今天有時間搞搞,模版的概念是在c 語言的高版本才引進的,模版是引數化的型別,在有模版之前 c 語言的程式設計師熱衷於設計類屬一類 其目標是為了實現程式 的可重用性,通過屬性程式設計,使得同一結構 的不同例項公用同樣的 這樣的類屬性資料結構包括 桟 佇列,陣列 矩陣 鍊錶...

簡單聊聊佇列是怎麼一回事

理論 作為資料結構的一種,佇列的應用範圍其實也是非常廣泛的。所謂佇列其實設定的訪問模式就取自於現實生活中的排隊模型,排隊也就是所謂的先來者先出。資料結構中的佇列同樣也是這種用法,你可以利用陣列或者鍊錶的任意乙個形式去實現乙個佇列,但是要注意對於乙個佇列的操作,應當只有入隊和出隊操作。利用 實現時,我...