這裡借助公尺斯特安全團隊的一款工具來進行實際編碼解碼。
其實就是按照特定的順序將字母替換。比如後移2位,那麼a就變成c,d就變成f。
下面更直觀的看一下:
這種加密與凱撒十分類似,就是凱撒密碼中移動13位的結果
這是利用a和b(a和b也行)來表示二進位制中的0和1,並以此來表示26個字母,培根密碼5位一組。
這個加密方式主要特徵是只有兩種不同的字母,都可轉換為ab形式
def就可以表示為aaabbaabaaaabab
百科上的例子:
一般比較常見的是2欄的柵欄密碼。
比如明文
:there is a cipher
去掉空格後變為:thereisacipher
兩個一組,得到:th er ei sa ci ph er
先取出第乙個字母:teescpe
再取出第二個字母:hriaihr
連在一起就是:teescpehriaihr
還原為所需密碼。
而解密的時候,我們先把密文從中間分開,變為兩行:
t e e s c p e
h r i a i h r
再按上下上下的順序組合起來:
thereisacipher
分出空格,就可以得到原文了:
there is a cipher
但也存在不是兩欄的情況,就需要對密文的總字數分解因數,嘗試分欄的種類。
比如密文 tahceirpehiesr 14個字母,可以考慮2欄或7欄,解密如下:
根據不同情況,找到有意義的一組。
還是先看百科上的例子
轉碼過程例子:
3*8=4*6
記憶體1個位元組佔8位
轉前: s 1 3
先轉成ascii:對應 115 49 51
2進製: 01110011 00110001 00110011
6個一組(4組) 011100110011000100110011
然後才有後面的 011100 110011 000100 110011
然後計算機是8位8位的存數 6不夠,自動就補兩個高位0了
所有有了 高位補0
科學計算器輸入 00011100 00110011 00000100 00110011
得到 28 51 4 51
查對下照表 c z e z
核心思想在於將8位的二進位制轉換為6位的二進位制。
而6位二進位制共64種組合,可以表示10個數字,26個字母的大小寫,外加符號+和/。一共64個。
對應編碼
有一點要特別指出,當明文個數不是三的倍數時,就會出現 明文數*8%6不為零的情況,
這是如果餘數為2,就在末尾補兩個等號,如果餘數為4,就補乙個等號。對於餘下的2個或4個二進位制
採用高位補零的方法。
比如密文:cmfuba== 的明文為ranl
因此我們可以得出base64編碼後的特徵:只含有數字,字母,和符號+ / =。
這是瀏覽器方便傳輸資訊和加強安全性的編碼。url編碼是字元ascii碼的十六進製制加上%的格式。
部分對應表:
但在url中不是對所有的字元都要進行url編碼,一般的字母和數字是不會被編碼的。會以原本形式傳遞。
這是對ascii碼表的擴充套件,可以表示更多的字元,採用2個位元組16位的儲存形式。解碼後可以看到16進製制的表示形式。
其特徵為以\u開頭
這是為了利用記憶體採用的一種編碼格式,這裡只是看看其特徵 開頭ascii表之外的字元,
對於能用ascii表示的字元仍用ascii表示還是乙個長度,就節省了記憶體。
hash函式是一系列單向函式,就是這種運算是不可逆的,只可以通過hash運算得到乙個hash值,而不能通過hash值得到原始資料。並且經過hash運算後得到的hash值為固定長度。
**後台一般只儲存使用者密碼的hash值,但也存在一定風險,因為如果黑客拿到了密碼的hash後,可以的通過對比已經存在的明文與雜湊的對應資料,進行對比,獲得明文密碼。因此,有了加鹽hash,就是隨機的在使用者密碼後加上一段字元後再進行hash運算,由於黑客不知道加的鹽是什麼,依然無法得到密碼。
md5是hash演算法中一種特殊的演算法而已,也是hash演算法,最後的結果為128個字元,但一般取其中的64或者32位。
密碼學 密碼學基礎
密碼學是研究編制密碼和破譯密碼的技術科學。密碼學的安全目標至少包含三個方面 保密性 完整性 可用性。完整性 資源只有授權方以授權的方式進行修改,所有資源沒有授權則不能修改。可用性 資源只有在適當的時候被授權方訪問,並按需求使用。密碼系統由5部分組成 1 明文空間m 全體明文的集合 2 密文空間c 全...
CTF密碼學密碼特徵總結
凱撒密碼 rot族 摩斯密碼 url轉碼 柵欄密碼 進製轉換 培根加密 各種 加密 特徵 base64,32密文都有等於號 base16就是16進製制轉ascii問題不大吧 base32編碼是由大寫字母 a z 和數字234567組成與base64類似 解密 裡面也有詳細的說明,有興趣的自己看看 轉...
密碼學基礎
在正式講解https協議之前,我們首先要知道一些密碼學的知識。明文 明文指的是未被加密過的原始資料。密文 明文被某種加密演算法加密之後,會變成密文,從而確保原始資料的安全。密文也可以被解密,得到原始的明文。金鑰 金鑰是一種引數,它是在明文轉換為密文或將密文轉換為明文的演算法中輸入的引數。金鑰分為對稱...