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 語言的程式設計師熱衷於設計類屬一類 其目標是為了實現程式 的可重用性,通過屬性程式設計,使得同一結構 的不同例項公用同樣的 這樣的類屬性資料結構包括 桟 佇列,陣列 矩陣 鍊錶...
簡單聊聊佇列是怎麼一回事
理論 作為資料結構的一種,佇列的應用範圍其實也是非常廣泛的。所謂佇列其實設定的訪問模式就取自於現實生活中的排隊模型,排隊也就是所謂的先來者先出。資料結構中的佇列同樣也是這種用法,你可以利用陣列或者鍊錶的任意乙個形式去實現乙個佇列,但是要注意對於乙個佇列的操作,應當只有入隊和出隊操作。利用 實現時,我...