您好,登錄后才能下訂單哦!
本篇內容主要講解“Python加密和解密怎么理解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python加密和解密怎么理解”吧!
在計算機世界里,信息安全始終占據著重要的地位,我們隨處就可以看到信息安全的應用:
◆ 訪問網站時,使用https而不是http會使訪問者的安全性大大提升
◆ 下載文件時,正規的網站都會提供MD5或類似的散列碼,供下載后校驗,以防止下載被篡改的文件(有可能包含惡意代碼等)
◆ 網絡銀行或者手機銀行的U盾或者電子證書等
◆ 區域鏈以及數字貨幣等
◆ ssh登錄時的免密設置
◆ github需要提交的公鑰等
以上種種無一不提示著密碼學知識的重要性。從本文開始,將沿著數據加解密的思路,將開發能夠用到的密碼學知識簡單地梳理下。密碼學的基本目的是使得雙方能夠在不安全的信道上進行安全的通信,在計算機網絡中,假設有兩個人Alice和Bob,Alice想發送消息給Bob,告訴他一個重要信息,不能夠讓相關人知道。此時,Alice擔心信息會被潛在的對手Oscar監聽,甚至篡改消息內容來誤導Bob。即使收到信息,Bob也對Alice發過來的消息有疑慮,不知道消息是否為Alice本人所發,消息內容是否真實等等。假設Alice事先和Bob商量好一個密鑰(key),Alice通過密鑰將明文(plaintext)加密成密文,在網絡中傳輸,Bob收到Alice傳過來的密文(ciphertext),用事先商量好的密鑰進行解密,得到明文,而潛在對手Oscar即使監聽到Alice發送的消息,也是加密過的密文,由于不知道密鑰,所以無法知道真實的明文。
其基本過程如下圖所示:
為了達到這個目的,許多有智之士設計出各解決方案,其中移位密碼是最早,最簡單且有效的方法之一。有據可查的可追溯至古羅馬時代,尤利烏斯·愷撒曾經使用。移位密碼的思路是通過將明文中所使用的字母按照一定的位移個數進行“平移”來加密,為了簡化內容,如下圖所示,在這里我們只使用英文字母作為示例。
如上圖所示,最早期時,一般將字母平移3位,也就是a->d,b->e,c->f,這種最早平移3位的方案也叫愷撒密碼(Caesar Cipher),后來經過修正,平移位數也不一定是3位,可以是其它任何整數位,統稱為移位密碼(Shift Cipher),可以知道,愷撒密碼是移位密碼的一個特例(key=3時)。現假設我們有明文P=china,密鑰K=3, 現要將其加密,根據上表,將字符P中的每個字母平移3位,得到如下情況:
c->f h->k i->l n->q a->d
至此,明文china就被轉換成了密文fklqd。移位密碼的解密也非常簡單,只要使用加密時用的密鑰進行反向平移操作,剛來的例子只要將密文反向平移3位就行,可得到如下:
f->c k->h l->i q->n d->a
在實際應用時,密鑰其實就是位移的個數。但這個數據規模在過去人類沒有計算機的時代,靠人類有限的腦力與經驗,確實很難猜出來,所以,移位密碼是非常經典的算法。直到現在也可以用來進行簡單的加解密,一般人不明就里,也就很難猜出其中的規律。但是,在現代計算機高科技面前,這種密碼卻不堪一擊,只能算是玩具性質的益智游戲罷了。
到此,相信大家對“Python加密和解密怎么理解”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。