• 大小: 3KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: Python
  • 标签: Python  

资源简介

> `明文:`明文经过加密过程的变换所得的消息或字符串。
> `加密过程`:将明文变换成另一种不能被非授权者所理解的隐蔽信息。
> `密文`:明文经过加密过程的变化,所得的消息或字符串。
> `加密变换`:将明文变为密文的变换。
> `密钥`:加密变化所使用的参数。

资源截图

代码片段和文件信息

# 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 

评论

共有 条评论