實作柵欄密碼的編碼與解碼。
柵欄密碼是一種換位密碼,名稱來自它的編碼方式。古希臘人早就在用了。
在柵欄密碼中,訊息會沿著一座想像柵欄上的一道道「欄杆」往下寫,寫到底部時再往上移動(就像鋸齒狀一樣)。最後再逐列把訊息讀出來。
舉例來說,使用三道「欄杆」和訊息「WE ARE DISCOVERED FLEE AT ONCE」,加密者會寫出:
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
然後讀出:
WECRLTEERDSOEEFEAOCAIVDEN
要解密訊息,就畫出鋸齒狀的圖形,然後把密文沿著各列填入。
? . . . ? . . . ? . . . ? . . . ? . . . ? . . . ?
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .
第一列有七個位置,可以填入「WECRLTE」。
W . . . E . . . C . . . R . . . L . . . T . . . E
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .
接著第二列填入「ERDSOEEFEAOC」。
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .
最後一列則留給「AIVDEN」。
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
現在只要沿著鋸齒狀的圖形讀下去,就能讀出原本的訊息。