回覆列表
  • 1 # 使用者3421315280317

    當p為字母z時,試一下直接ord(p)+3就知道啦。

    我假設老哥你已經懂了python語法,我就只講講凱撒加密。凱撒加密說白了就是偏移字母的位置,將原來的字母用它之後的第x個字母來代替原來的字母進行加密。因此這個加密方法僅僅支援純英文字母。

    舉個簡單的例子,假如明文是“Hello World”,那麼經過偏移量(或者稱之為金鑰)為3的凱撒加密後,就會變成“Khoor Zruog”。

    下面來看程式碼,char裡面分為兩部分第一部分為ord(“a”),第二部分為(ord(p)-ord(“a”)+3)%26

    第二部分的意思是什麼?是先用原始字母減去字母a,記得數為n,實際上也就是得到p是第n+1個字母,然後加上偏移量3,表示要將p加密為第n+4個字母。為什麼最後要對26取模。很簡單,為了照顧x,y,z的心情。這樣就可以透過取模運算將他們對應到abc上了。好了現在第二部分的結果實際上是(n+3)%26,他表示加密後的字母距離字母a的距離為(n+3)%26

    接下來將上面的結果加上a的ascii碼也就是第一部分,不就得到了新的加密後的字母的ascii碼了嗎,然後char一下,完成!

  • 中秋節和大豐收的關聯?
  • 一個月大的泰迪能聽懂人話嗎?