中国西南部の兄は今日、私は、これはそれが最初の章で、持っているだろう、私は丘の上に、年齢、タイトル名の質問をしました。
最初の丘を導入し、丘ではなく、パスワードの多文字のパスワードです。丘第一の平文パスワード要件同じサイズのパケットの数に(充填する最後が不十分パケットである)、各パケットが一体暗号変換であり、すなわち、丘は、パスワードパケットが属する暗号化されました。
暗号化プロセス〜!
アルファベットの最初の26の文字は、0〜25の番号が付けられています。
2つのマスタースクリプトを導入するには、次の二つの質問。
まず、アーネムカップは月トーナメント - グレードの道
一連の操作の後、ステップは、最も重要な要素を省略しています
マトリックス:
3 1
2 1
暗号文:
mttpjbpexfdzcegtdzeanutg
ここではマスタースクリプト、C言語のバージョンが投稿しました。
リンクします。https://pan.baidu.com/s/1WjzDJaSHGB2JmA79VLfHQQ
抽出コード:1f3g
二、丘--over私の春
ここでは、マスタースクリプトがあります
1 import numpy 2 3 from sage.all import * 4 5 alphabet = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789_{}") 6 7 n = len(alphabet) 8 9 Zn = IntegerModRing(n) 10 11 secret = [[54, 53, 28, 20, 54, 15, 12, 7], 12 13 [32, 14, 24, 5, 63, 12, 50, 52], 14 15 [63, 59, 40, 18, 55, 33, 17, 3], 16 17 [63, 34, 5, 4, 56, 10, 53, 16], 18 19 [35, 43, 45, 53, 12, 42, 35, 37], 20 21 [20, 59, 42, 10, 46, 56, 12, 61], 22 23 [26, 39, 27, 59, 44, 54, 23, 56], 24 25 [32, 31, 56, 47, 31, 2, 29, 41]] 26 27 secret = matrix(Zn, secret).inverse() 28 29 ciphertext = "7Nv7}dI9hD9qGmP}CR_5wJDdkj4CKxd45rko1cj51DpHPnNDb__EXDotSRCP8ZCQ" 30 31 blocks = [ciphertext[i : i + secret.ncols()] for i in range(0, len(ciphertext), secret.ncols())] 32 33 plaintext = '' 34 35 for block in blocks: 36 37 decrypted_block = secret * matrix(Zn, [alphabet.find(c) for c in block]).transpose() 38 39 plaintext += ''.join(alphabet[int(i[0])] for i in decrypted_block) 40 41 42 43 print plaintext
在线运行网站:http://sagecell.sagemath.org/
到这里就结束了,脚本都是师傅们的,很惭愧,共勉吧。
over