密码学
、moddemod
这个作者很懒,什么都没留下…
展开
-
CBC翻转字节
CBC翻转字节攻击利用博主小白,之前参考了freebuf上的文章,忘记了是哪一篇了,今天自己写了一下…from Crypto.Cipher import AESfrom binascii import b2a_hex, a2b_hexclass Crypto(object): def __init__(self, key, iv): self.iv = iv ...原创 2019-06-12 10:01:27 · 308 阅读 · 0 评论 -
强网杯-强网先锋辅助
题目描述flag=open("flag","rb").read()from Crypto.Util.number import getPrime, bytes_to_longimport timep=getPrime(1024)q=getPrime(1024)e = 65537n=p*qm=bytes_to_long(flag)c=pow(m,e,n)print c,e,n...原创 2020-01-04 13:03:28 · 1302 阅读 · 0 评论 -
rsa(共用质数)
from Crypto.Util.number import getPrimefrom binascii import hexlifyfrom hashlib import md5from random import choicesfrom string import hexdigitsimport gmpy2from flag import flagnbits = 1024fl...原创 2020-01-04 11:26:37 · 758 阅读 · 0 评论 -
z3库
写在前面的话z3是由Microsoft Research开发的高性能定理证明器,例如:软件/硬件验证和测试,约束解决,混合系统分析,安全性,生物学(计算机模拟分析)和几何问题.主要是一些逆向,加密方面比较有用吧,对于位运算等等非常方便.安装支持Python2以及3各个版本,Linux下直接安装即可…pip install z3-solverpipenv install z3-solve...原创 2019-12-28 22:38:39 · 946 阅读 · 0 评论 -
Bugku--affine
描述仿射变换,单表代换密码脚本#!/usr/bin/env python# -*- coding: utf-8 -*-# author: moddemod# datetime: 2019/12/27 下午9:50 # ide: PyCharm# y = 17x-8 flag{szzyfimhyzd}import gmpy2s = 'szzyfimhyzd'r = gmp...原创 2019-12-27 22:31:03 · 523 阅读 · 0 评论 -
Bugku--Crack it
描述分析下载下来打开发现是没错这就是Linux下shadow文件里的内容,关于shadow可以参考另外一篇博客shadow, 这里就不再赘述, 这里是采用SHA-512加密的root的密码…这里推荐john这个工具,一个开源免费的快速密码破解软件,在Kali上已经集成了, 用于在已知密文的情况下尝试破解出明文,支持目前大多数的加密算法.基于字典进行暴力破解如果你是windows用户...原创 2019-12-27 21:34:58 · 441 阅读 · 0 评论 -
/etc/shadow解析
写在前面的话Linux下重要的文件shsadow,主要用来存储用户密码,我们先来看看文件内容吧!这里先来解释一下moddemod:$6$CuH2yeMBGqMEFPll$EWinnUxB4s.U9GcZTdDN8Ai/6CVly5EfR5NV9Ft1XkYOuI1YNSwE0DvHiujysreygl8awy.ffnguCGYbOnz5F/:18236:0:99999:7:::modd...原创 2019-12-27 19:47:57 · 543 阅读 · 0 评论 -
Bugku--凯撒部长的奖励
描述凯撒密码,直接贴之前写的脚本:凯撒密码脚本#!/usr/bin/env python# -*- coding: utf-8 -*-# author: moddemod# datetime: 2019/12/26 下午3:27 # ide: PyCharmdef encrypt(plaintext): # j即为key for j in range(26): ...原创 2019-12-26 15:34:11 · 284 阅读 · 0 评论 -
Bugku--散乱的密文
描述脚本#!/usr/bin/env python# -*- coding: utf-8 -*-# author: moddemod# datetime: 2019/12/26 上午11:12 # ide: PyCharm# lf5{ag024c483549d7fd@@1}# 一张纸条上凌乱的写着2 1 6 5 3 4s = 'lf5{ag024c483549d7fd@@1...原创 2019-12-26 15:16:33 · 313 阅读 · 0 评论 -
Bugku--简单加密
描述首先看到大括号容易想到栅栏密码,其次最后两个字符相同,也容易想到base64…脚本#!/usr/bin/env python# -*- coding: utf-8 -*-# author: moddemod# datetime: 2019/12/26 上午11:01 # ide: PyCharmimport base64# 栅栏key为4s = 'e6Z9i~]8R~U...原创 2019-12-26 11:10:55 · 1161 阅读 · 0 评论 -
Bugku--easy_crypto
描述以空格分割, 很像摩尔斯电码,我们把摩尔斯电码的.和-替换成0和1即可,下面是脚本…脚本#!/usr/bin/env python# -*- coding: utf-8 -*-# author: moddemod# datetime: 2019/12/26 上午10:34 # ide: PyCharmdst_dict = {'.-': 'A', '-...原创 2019-12-26 10:58:14 · 274 阅读 · 0 评论 -
Bugku--一段Base64
描述脚本#!/usr/bin/env python# -*- coding: utf-8 -*-# author: moddemod# datetime: 2019/12/25 下午10:13 # ide: PyCharmimport base64from html import unescapeimport urllib.parse as urlparsewith op...原创 2019-12-25 23:16:31 · 701 阅读 · 0 评论 -
Bugku--告诉你个秘密(ISCCCTF)
问题描述脚本#!/usr/bin/env python# -*- coding: utf-8 -*-# author: moddemod# datetime: 2019/12/25 下午9:54 # ide: PyCharmimport binasciiimport base64s = '636A56355279427363446C4A49454A7154534230526D...原创 2019-12-25 22:06:44 · 437 阅读 · 0 评论 -
Python zip伪加密
原理zip伪加密是在文件头的加密标志位做修改,从而实现在打开文件时识被别为加密压缩包。所以把相应标志为改回来即可!脚本#!/usr/bin/env python# -*- coding: utf-8 -*-# author: moddemod# datetime: 2019/12/25 下午5:47 # ide: PyCharmimport zipfiledef modi...原创 2019-12-25 21:49:40 · 843 阅读 · 0 评论 -
gmpy2
写在前面的话文章的环境是在ArchLinux下,python版本为最新3.8,如果是windows可能安装过程会遇到很多问题,可以在网上找找解决方法!pipenv install gmpy2pipenv install libnum默认安装libnum安装了gmpy2,所以可直接安装libnum!gmpy2gmpy2是一个C编码的Python扩展模块,它支持多精度算术。gmpy模块仅支持GMP多重精度库。gmpy2增加了对MPFR和MPC库的支持。gmpy2还更新了API和命名约定,使其更加原创 2019-12-25 17:25:20 · 2683 阅读 · 0 评论 -
Bugku-rsa
描述典型的rsa原理密钥的产生:选择两个满足需要的大素数ppp和qqq,计算nnn=ppp x qqq, φ\varphiφ(n) = (p - 1) x (q - 1),其中φ\varphiφ(n)是n的欧拉函数值。选一个整数eee,满足1 <<< e <<< φ\varphiφ,且gcd(φ\varphiφ(n), e) === 1。通过ddd...原创 2019-12-25 16:29:25 · 2029 阅读 · 0 评论 -
素数的检测
爱拉托斯散(Eratosthenes)筛法算法原理给定正整数n,为了找到小于n的所有素数,可以采用排除法:先去掉0和1,再一次去掉小于等于根号n的所有素数2,3,5…的倍数的数,剩下的整数就是所有的素数。#include <stdio.h>#define SIZE 1000#define TRUE 1#define FALSE 0int main(int argc, c...原创 2019-12-12 17:15:19 · 222 阅读 · 0 评论 -
欧几里得算法
欧几里得算法是初等数论中的一个基本算法,也是密码学中最常用的算法之一,它利用辗转相除法求得给定整数a、b的最打公约数,还可以将辗转相除的过程倒推回去,用a与b的一种线性组合表示其最大公约数。一种特殊情况是当a与b互素时,可以求得a mod b或者b mod a的乘法逆元,这个过程也称为扩展的欧几里得算法。辗转相除给定两个数a与b,求最大公约数:#include <stdio.h>...原创 2019-12-12 16:49:35 · 388 阅读 · 0 评论 -
模幂运算
快速实现模幂运算的基本原理是模重复平方计算法,其理论基础是模运算的基本性质,即相乘与求模两个运算是可交换的。#include <iostream>#include <math.h>using namespace std;int main(int argc, char * argv[]) { int n, a, p; int nn[30], aa[...原创 2019-12-12 16:19:50 · 1126 阅读 · 0 评论 -
多表代替
多表替换多表代替是指使用多个不同的代替表对明文进行加密。最典型的是一种多表代替加密技术是维吉尼亚密码,它共有26个代替表,每个代替表都是字母表循环左移产生的新表,在实际加密时,使用一个密钥字符串来控制代替表的使用。#include <iostream>#include <string.h>int main(int argc, char * argv[]) { ...原创 2019-12-12 13:31:55 · 1479 阅读 · 0 评论 -
凯撒密码(C++)
凯撒密码是一种典型的单表代替密码技术,其加密的方法如下:密文 = 明文 + 密钥 mod 26解密方法#include <iostream>#include <stdio.h>#include <string.h>int main(int argc, char * argv[]) { FILE * file1; char * ...原创 2019-12-12 13:06:33 · 2316 阅读 · 0 评论 -
Base64 python实现
Base64Base64是一种用64个字符来表示任意二进制数据的方法。原创 2019-12-10 01:42:14 · 185 阅读 · 0 评论 -
凯撒密码python实现
# moddemod# 2019/6/12def encrypt(plaintext): for j in range(26): str_list = list(plaintext) i = 0 while i <len(plaintext): if not str_list[i].isalpha(): ...原创 2019-06-12 16:01:58 · 12954 阅读 · 1 评论