- 博客(10)
- 收藏
- 关注
原创 软件工程概论
60年代:“软件危机”,首次提出“软件工程”(为了解决软件危机) 软件工程:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。 软件危机:软件产品的质量低的通常不能接受,并且不能满足交付日期和预算限制。(至今未被解决) 软件危机产生的原因: 与软件本身的特点有关(难于维护,逻辑复杂); 软件的规模越来越大,结构越来越复杂; 软件开发管理困难而复杂; 软件开发技术、开发工具落后; 软件开发费用不断增加。
2021-10-24 21:33:20
455
原创 密码学——数论基础
一、整除定义:a、b是两个整数,b≠0 ,如果存在一个整数m使等式a=m*b成立,则称b整除a,记为b|a,a是被除数,b是除数。性质:·若b|a,c|b,则c|a;·若b|g,b|h,则对任意整数m,n有b|(mg+nh)二、素数定义:一个大于q且只能被1和它本身整除的整数,称为素数(质数)否则称为合数。性质:·若p是素数,p|ab,则p|a或p|b。·若p是素数,a是任意整数,则有p|a(整除)或gcd(p,a)=1(互素),即素数与任意数之间可能是整除或互素的关系。三、最大公约
2020-07-29 17:47:55
1992
2
原创 Python的编码与解码
首先要明白,计算机只处理二进制数据,如果要处理文本,就需要将文本转换为二进制数据,再由计算机进行处理。将文本转换为二进制数据的就是编码,将二进制数据转换为文本的就是解码。编码和解码要按照一定的规则进行,这个规则就是字符集。ASCII编码ASCII编码只占用一个字节,也就是二进制的8位,一共就有256(28)种可能,完全可以覆盖英文大小写字母以及特殊符号。而我们中文的字符就远远超过256个,使用ASCII编码的一个字节来处理中文是不够的,于是我国就制定了支持中文的GB2312编码,使用两个字节,以支持2
2020-07-29 15:45:55
426
原创 2020DASCTF——七月赛
CRYPTO——bullshit题目源代码def pairing(a,b): shell = max(a, b) step = min(a, b) if step == b: flag = 0 else: flag = 1 return shell ** 2 + step * 2 + flagdef encrypt(message): res = '' for i in range(0,len(message)
2020-07-25 15:59:48
1383
原创 2020五月赛DASCTF
bbcrypto# -*- coding:utf-8 -*-import A,SALTfrom itertools import *def encrypt(m, a, si): c="" for i in range(len(m)): c+=hex(((ord(m[i])) * a + ord(next(si))) % 128)[2:].zfill(2) return cif __name__ == "__main__": m = 'flag{**
2020-07-01 13:47:32
1042
原创 DASCTF,网鼎杯部分题目复现
2020 网鼎杯 you_raise_me_up题目代码很简单from Crypto.Util.number import *import randomn = 2 ** 512m = random.randint(2, n-1) | 1c = pow(m, bytes_to_long(flag), n)print 'm = ' + str(m)print 'c = ' + str(c)m = 39119070912452742895948966256527403931830595217
2020-06-04 09:21:07
2273
原创 GKCTF2020——CRYPTO
小学生的密码学这道题就是简单的仿射密码解密网站base64一下即是flagbabycrypto这道题拿到题目可知是RSA,大数n使用工具暂时无法进行分解,而p给出了高位,低位还未知。在网上找到了类似的题目,原文链接这里使用到一个开源的数学软件sagemath得到了p,于是接下来常规的RSA求解import gmpy2import mathfrom Crypto.Util.number import bytes_to_long, long_to_bytesc = gmpy2.m
2020-05-24 20:29:29
2067
原创 NPUCTF 2020 Crypto
NPUCTF 2020 Crypto认清形势,建立信心p = getPrime(25)e = # Hiddenq = getPrime(25)n = p * qm = bytes_to_long(flag.strip(b"npuctf{").strip(b"}"))c = pow(m, e, n)print(c)print(pow(2, e, n))print(pow(4, ...
2020-05-23 20:34:19
673
原创 2020三四月份比赛的RSA
HackTM-RSA is easy #1 MRCTF-easy_RSA MRCTF-baby_RSA1、HackTM-RSA is easy #1打开文件的得到公钥信息和已经加密过后的列表,重点观察给出的代码的这个函数可以发现该函数是对字符逐个加密得到最后的密文,因此考虑列出所有的可能的字符进行逐个校验,代码如下:L = ['1','2','3','4','5','6','7','8...
2020-04-13 21:33:21
370
原创 RSA攻击持续总结
RSA攻击持续总结RSA算法描述1、变量涉及明文:m密文:c模数:n大质数:p,q欧拉函数值:r密钥:d,e2、算法流程随机生成两个大质数p,qn=p*qr=(p-1)*(q-1)求e:1<e<r 且 gcd(e,r)=1求d:1<d<r 且 e*d mod r=1加密过程:m<n c=pow(m,e,n) 即m的e次方 ...
2020-04-13 00:43:56
3285
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人