原理描述:
所謂柵欄密碼,就是把要加密的明文分成n個一組,然後把每組的第1個字連起來,形成一段無規律的話。 不過柵欄密碼本身有乙個潛規則,就是組成柵欄的字母一般不會太多。(一般不超過30個,也就是
一、兩句話)
加密特徵:
總體來說字母內容不變,僅是字母順序被「打亂」;加密的時候要選擇組數,所以解密的話只能逆推所有組數,然後選擇乙個適合的
指令碼實現:
# 柵欄密碼加密解密
# @chenye
defcrypto()
: plain =
input
('輸入明文:'
) n =
int(
input
('輸入每組字數'))
ans =
''for i in
range
(n):
for j in
range
(int
(plain.__len__(
)/n +
0.5)):
try:
ans += plain[j*n+i]
except
:pass
return ans
defdecrypto()
: plain =
input
('輸入密文:'
)for n in
range(2
,plain.__len__()-
1): ans =
''for i in
range
(n):
for j in
range
(int
(plain.__len__(
)/ n +
0.5)):
try:
ans += plain[j * n + i]
except
:pass
print
(ans)
if __name__ ==
'__main__'
:print
('柵欄密碼加密/解密.py'
)while
(true):
choice =
input
('功能選擇:\n1:加密\n2:解密\n'
)# 加密
if choice ==
'1':
print
(crypto())
# 解密
elif choice ==
'2':
decrypto(
)else
:print
('choice error!'
)
base加密與解密以及特徵
base32的編碼表是由 a z 2 7 32個可見字元構成,符號用作字尾填充。base64的編碼表是由 a z a z 0 9 64個可見字元構成,符號用作字尾填充。base58的編碼表相比base64少了數字0,大寫字母i,o,小寫字母 l 這個是l 以及符號 和 等 也就是說base64的加密...
加密與解密(五) 密碼 加密
問題 1 密碼的存在意義?2 加密演算法有哪些?密碼 密碼學 密碼 通訊雙方按照約定的法則進行資訊特殊變換的一種重要保密手段。依照這些法則,變明文為密文,稱為加密變換 變密文為明文,稱為脫密變換 解密 密碼體制可以分為以下幾種 密碼學的目標 加密乙個密碼系統的安全性只在於金鑰的保密性,而不在演算法的...
柵欄密碼 W型柵欄密碼 加解密(python實現)
柵欄密碼定義如下 柵欄密碼是將明文分成多個組,取每組第乙個字元連成一段,每組第二個字元連成一段 最後將各段連線起來得到密文。同時也可看成是按一定的步長取幾組字元,再將這幾組字元連起來得到密文。解密同理。這裡的步長就是金鑰 欄數 傳統柵欄密碼的金鑰是密文長度的因數。如密文長度為n,加密金鑰為x,則有n...