資源簡介
> `明文:`明文經過加密過程的變換所得的消息或字符串。
> `加密過程`:將明文變換成另一種不能被非授權者所理解的隱蔽信息。
> `密文`:明文經過加密過程的變化,所得的消息或字符串。
> `加密變換`:將明文變為密文的變換。
> `密鑰`:加密變化所使用的參數。
> `加密過程`:將明文變換成另一種不能被非授權者所理解的隱蔽信息。
> `密文`:明文經過加密過程的變化,所得的消息或字符串。
> `加密變換`:將明文變為密文的變換。
> `密鑰`:加密變化所使用的參數。
代碼片段和文件信息
#?i:/vscode/vscode_python/.vscode/數學建模
#?-*-?coding:?utf-8?-*-
‘‘‘
@Time????:?2019/11/20?19:51
@Author??:?nuoyanli
@Version?:?1.0
@Contact?:?2531649293@qq.com
@Site????:?2.79KB
@File????:?希爾密碼.py
@Software:?VSCode
‘‘‘
import?numpy?as?np
def?encode(string?size):
????#?只轉換大寫字母
????if?not?string.isupper():
????????return?None
????#?分成?size?字的分段
????blocks?=?[string[i:i+size]?for?i?in?range(0?len(string)?size)]
????temp?=?np.array([list(map(ord?block))?for?block?in?blocks])?-?ord(‘A‘)
????return?temp
def?analysis(crypter?code):
????return?((crypter?@?code.T)?%?26).T?+?ord(‘A‘)
if?__name__?==?‘__main__‘:
????#?要加密的信息
????while?True:
????????print(‘請輸入待加密的信息:(請務必保證加密信息只包含大寫字母)‘)
????????Clear_text?=?input()
????????print(‘待加密的信息為:\n‘+Clear_text)
????????print(‘請選擇加密矩陣的大小n作為n*n的加密矩陣(請務必保證矩陣合法):‘)
????????n?=?int(input())
????????if?len(Clear_text)?%?n?!=?0:
????????????print(‘該密文和加密矩陣不合法!‘)
????????else:
????????????break
????print(‘請輸入n行每行n個數,每行的數用空格隔開‘)
????matrix?=?[[0]?*?(n)]?*?(n)
????for?i?in?range(n):
????????matrix[i]?=?list(map(int?input().split(‘?‘)))
????#?加密矩陣
????Encryption_matrix?=?matrix
????print(‘加密矩陣為:‘)
????for?i?in?range(n):
????????for?j?in?range(n):
????????????print(Encryption_matrix[i][j]?end=‘‘)
????????????if?j?==?(n?
- 上一篇:python 獲取文件夾下文件名稱并寫入到excel
- 下一篇:特征空間可視化.py
評論
共有 條評論