本人渣渣,只是為了總結自己的學習過程,請大佬莫噴
有時候題目會讓你把base全家桶用上,你就可以像下面這樣
import base64
str1 = 'your string'
print base64.b64decode(str1)
print base64.b32decode(str1)
print base64.b16decode(str1)
專門用於快速提交網頁所需要的東西或者是多次訪問你提交的東西
參考文章:
一般都是下面的形式
import requests
url = 'your url'
s = requests.session()
r = s.get(url)
str1 = r.headers['flag'].split(':')[1] #抓包看清楚是啥才行,有可能不是flag,是其他的
data =
print s.post(url,data).text
print s.post(url,data).content
有時候要你盡可能快,可能你得盡量縮小**量達到更快的效果
運用正則re
下面是一道匹配正確md5題目所寫出來的
import re
md51 = 'your wrong md5'
pattern = r'[1-9a-z]'
str1 = ''
for i in md51:
if re.search(pattern,i):
str1 = str1+i
print str1
import md5
import string
for i in
string.uppercase:
for j in
string.uppercase:
for k in
string.uppercase:
a='tasc'+i+'o3rjmv'+j+'wdjkx'+k+'zm'
b=md5.md5(a).hexdigest()
if(b[0:5]=='e9032'):
print b
md5.md5(s)
返回字串s的md5
md5.update(arg)
用string引數arg更新md5物件。即將要計算arg的訊息摘要值。
md5.digest()
返回16位元組的摘要,由傳給update的string生成,摘要沒有ascii字元
md5.hexdigest()
以16進製制的形式返回摘要,32位
還有一種hashlib,這東西好像是py3只能用它了,我試了一下,好像不怎麼行,跑不出答案。。。但是它功能很強大,還有sha1演算法啥的
import hashlib
import string
for i in
string.uppercase:
for j in
string.uppercase:
for k in
string.uppercase:
a = 'tasc'+i+'o3rjmv'+j+'wdjkx'+k+'zm'
#c = hashlib.new('md5', string=a).hexdigest()
b = hashlib.md5(a)
c = b.hexdigest()
if(c[0:5]=='e90032'):
print c
import binascii
import string
dic=string.printable #各種列印字元
crc = '''你的輸入 '''
# 記得要以0x開頭
defcrackcrc
(crc):
for i in dic :
for j in dic:
for p in dic:
for q in dic:
s=i+j+p+q
if crc == (binascii.crc32(s) & 0xffffffff):
print s
在 python 2.x 的版本中,binascii.crc32 所計算出來的 crc 值域為[-2^31, 2^31-1] 之間的有符號整數,為了要與一般crc 結果作比對,需要將其轉為無符號整數,所以加上& 0xffffffff來進行轉換。如果是 python 3.x 的版本,其計算結果為 [0, 2^32-1] 間的無符號整數,因此不需額外加上& 0xffffffff 。
f1 = open('檔案路徑','rb') # 此處rb是指以二進位制讀取檔案,二進位制才能進行異或運算的呀233333
f2 = open('檔案路徑','rb')
a = "".join(f1.readlines()) #這裡的readlines跟read差不多,readlines把全文讀取後按照行的形式存進列表,所以一版一行行遍歷我們用for i in f.readlines()。。而read直接簡單粗暴,而readline簡單讀取一行,強行複習一波python
b = "".join(f2.readlines())
s= ''
for i,j in zip(a,b): #這裡的zip是指多個序列或者是迭代器的元素,組合成元組。返回的元組的長度是所有輸入序列中最短的
s+=chr(ord(i)^ord(j))
print
s
import zipfile
from threading import thread
defextractfile
(zfile,pwd):
try:
zfile.extractall(pwd = pwd)
print
'password found : %s' % pwd
except:
pass
defmain
():
zfile = zipfile.zipfile('your zip')
passfile = open('dictionary.txt')
for line in passfile.readlines():
password = line.strip('\n')
t = thread(target=extractfile, args=(zfile, password)) #函式性程式設計的影子。因為第乙個引數是函式。。
t.start()
if __name__ == '__main__':
main()
其實python真的很強大,做題的時候還是有類似一些盲注之類的題目也會用到它,只是我是菜雞,只能憑自己理解寫一下,以後希望有時間還能補充一下。。。。。。 一波CSS Div實用技巧小結
正如多數人的認知一樣,html和css並不難學難用,從學習曲線上來說確實如此,難度甚至不如使用vim。但是寫不寫得好又是另一回事,好的css 能用最少的 量實現功能,易修改且效能佳。易修改,舉個最簡單的例子,比如要求修改乙個div的高寬且保持其子div自適應高寬,若是寫死了子div的高寬,修改工作很...
vector理解一波
vector 標頭檔案 include using namespacestd 定義 vector 型別 q 類同於 型別 q vector 型別 q 1010 類同於 型別 q 1010 操作 往vector存入乙個個資料 函式名 w.push back 資料 include include usi...
IT屋一波解答
viewpager 包裹fragment時,重新整理資料問題 1.setuservisiblehint 方法在oncreateview 之前呼叫,所以會throw nullpointexception 2.設定預載入,在viewpager中,現在的版本已經預設是1了。可以設定為mvphome.set...