
密码学
Recyclable brother
越努力越幸运
展开
-
python求本原根
素数p的本原根定义如果a是素数p的原根,则数, , … , 是不同的并且包含1到p-1的整数的某种排列。特别地,如果a是素数p的本原根,则a, a^2, …, a^(p-1)在 mod p下都不相同。求解本原根俩种思路:list = [i for i in range(1,25)]byg = [] #用于存放本原根List = [] #用于存放遍历元素的测试集合for i in list: key = 0原创 2020-11-16 21:04:46 · 3112 阅读 · 2 评论 -
流密码-python实现RC4加密
1、 理解流密码的基本思想2、 掌握RC4加密算法的加解密过程和实现方法3、 采用自己熟悉的编程语言实现RC4密码算法。给定密钥abcde,试对明文“Shenzhen University”加密(注:明文包括空格,但不包括引号)。# RC4的Python实现def S_box(R): # S盒 S = [x for x in range(256)] j = 0 #S盒打乱顺序 for i in range(256): j = (j + S[i] +原创 2020-11-16 20:59:54 · 1581 阅读 · 0 评论 -
分组密码-python实现DES加密
这里仅对64位bit流进行操作,如果要求中文字符等,则还需要增加转换编码的步骤。通过简单实现DES加密,理解DES过程。# IP置换表IP = [58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49,原创 2020-11-16 20:53:02 · 1244 阅读 · 1 评论 -
古典密码-python实现维吉尼亚密码
def secret(): #加密过程 str= input("请输入明文:") str_list = list(str) k_list = [x for x in input("请输入密钥流:").split()] #输入密钥流,以空格为间隔 #print(k_list) for i in range(len(str_list)): #判断输入密钥为数字或者大小写字母 a = i % len(k_list) i原创 2020-11-16 20:47:18 · 972 阅读 · 0 评论 -
古典密码-python实现凯撒密码
def secret(): str= input("请输入明文:") k = int ( input("请输入移位:") ) str_list = list(str) #i = 0 for i in range(len(str_list)): if(96 < ord(str_list[i]) < 123 ): str_list[i] = chr((ord(str_list[i]) - ord('a') + k) %原创 2020-11-16 20:46:07 · 373 阅读 · 0 评论