考研一百天纪念日
考研100天纪念日今天是 2024-09-12,距离 2025 年考研还有 100 天。大学期间第一次体验到类似高中的紧迫感,目前为止我已在考研上投入了大量时间与精力,所以没有退路,只能向前。
希望最后的一百天能以最佳状态复习,每天坚持 8 小时高效学习,持续 100 天。
就像 Nike 的广告语:Just do it。
Hill加密算法-Python(优化版)
Hill加密算法(Python)-优化版前言 在上一篇博客中,我简单的实现了希尔加密算法,只支持三个小写字母的字符串。在实际中,往往要求输入的字符串很长,甚至包含一些特殊的字符串。因此在最近我又优化了一下上次的代码,支持输入任意长度的字符串,但是在解密时需要输入原始的字符串长度。
实现过程 对于输入任意长度的字符串都能进行加密,主要思想是对于用户输入的字符串进行切片,如果用户输入的不足密钥阶数的整数倍,则需要填充固定的字符。在我的代码中,我使用的是固定长度的密钥矩阵(三阶),因此需要判断用户输入的字符串长度是否为3的整数倍,不满足时就向字符串转换的数字列表后面填充0。填充后将列表切分,然后转化为矩阵,依次将三个元素的子列表与加密矩阵相乘,储存相乘后的列表。转换相乘后得到的列表为字符串,这样就得到了密文。所有的代码这次整合在一个加密函数中,如下:
123456789101112131415161718192021222324252627282930def encrypt(text_list): # 字符串转换为列表 list_t = [] for ch in tex ...
Hill加密系统(Python)
Hill加密系统(Python)前言 最近在学习数据安全时,上机课的任务是完成希尔加密算法。因为最近我写Python比较多,所以就想用Python来实现。一开始什么思绪也没有,毕竟我们大数据专业也没有学过密码学。
就在网上找相关的资料,找了好久才理解希尔加密算法。就花了几天课余时间自己写了一个简单的希尔加密系统。
先来了解一下希尔加密算法加密的基本流程:希尔密码(Hill)使用每个字母在字母表中的顺序作为其对应的数字,即 A=0,B=1,C=2 等,然后将明文转化为 n 维向量,跟一个 n × n 的矩阵相乘,再将得出的结果模 26。注意用作加密的矩阵(即密匙)在 Zn26Z26n 必须是可逆的,否则就不可能解码。只有矩阵的行列式和 26 互质,才是可逆的。
实现过程定义一个字母表:
123alphabet = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: ...
我的第一篇博客
欢迎大家来到我的博客,我是Hu。如你所见,这是我的第一篇个人博客(除去HelloWorld),不知道若干年后当我成为一个资深程序员的时候看到这篇文章会有何感想。
Hexo服务启动清除缓存文件 db.json 和已生成的静态文件 public1$ hexo clean
生成网站静态文件到默认设置的 public 文件夹。1$ hexo g
启动本地服务器,用于预览主题。默认地址: http://localhost:4000/1$ hexo s
部署到Github服务器1$ hexo d
上面就是一些最基本的hexo命令了。