對 Python 加密時可能會有兩種形式,一種是對Python轉成的exe進行保護,另一種是直接對.py或者.pyc文件進行保護,下面將列舉兩種形式的保護流程。
1、 對 python轉exe加殼
下載最新版Virbox Protector加殼工具,使用加殼工具直接對demo.exe進行加殼操作
2、對.py/.pyc加密
第一步,使用加殼工具對 python 安裝目錄下的 python.exe 進行加殼,將 python.exe 拖入到加殼工具 VirboxProtector 中,配置後直接點擊加殼。
第二步,對.py/.pyc 進行加密,使用 DSProtector 對.py/.pyc 進行保護。
『貳』 如何使用Python 3的兩個庫來加解密字元串
哈希
如果需要用到安全哈希演算法或是消息摘要演算法,那麼你可以使用標准庫中的 hashlib 模塊。這個模塊包含了符合 FIPS(美國聯邦信息處理標准)的安全哈希演算法,包括 SHA1,SHA224,SHA256,SHA384,SHA512 以及 RSA 的 MD5 演算法。Python 也支持 adler32 以及 crc32 哈希函數,不過它們在 zlib 模塊中。
哈希的一個最常見的用法是,存儲密碼的哈希值而非密碼本身。當然了,使用的哈希函數需要穩健一點,否則容易被破解。另一個常見的用法是,計算一個文件的哈希值,然後將這個文件和它的哈希值分別發送。接收到文件的人可以計算文件的哈希值,檢驗是否與接受到的哈希值相符。如果兩者相符,就說明文件在傳送的過程中未經篡改。
讓我們試著創建一個 md5 哈希:
>>> import hashlib >>> md5 = hashlib.md5() >>> md5.update('Python rocks!') Traceback (most recent call last): File "<pyshell#5>", line 1, in <mole> md5.update('Python rocks!') TypeError: Unicode-objects must be encoded before hashing >>> md5.update(b'Python rocks!') >>> md5.digest() b'\x14\x82\xec\x1b#d\xf6N}\x16*+[\x16\xf4w'
讓我們花點時間一行一行來講解。首先,我們導入 hashlib ,然後創建一個 md5 哈希對象的實例。接著,我們向這個實例中添加一個字元串後,卻得到了報錯信息。原來,計算 md5 哈希時,需要使用位元組形式的字元串而非普通字元串。正確添加字元串後,我們調用它的 digest 函數來得到哈希值。如果你想要十六進制的哈希值,也可以用以下方法:
>>> md5.hexdigest() ''
實際上,有一種精簡的方法來創建哈希,下面我們看一下用這種方法創建一個 sha1 哈希:
>>> sha = hashlib.sha1(b'Hello Python').hexdigest() >>> sha ''
可以看到,我們可以同時創建一個哈希實例並且調用其 digest 函數。然後,我們列印出這個哈希值看一下。這里我使用 sha1 哈希函數作為例子,但它不是特別安全,讀者可以隨意嘗試其他的哈希函數。
密鑰導出
Python 的標准庫對密鑰導出支持較弱。實際上,hashlib 函數庫提供的唯一方法就是 pbkdf2_hmac 函數。它是 PKCS#5 的基於口令的第二個密鑰導出函數,並使用 HMAC 作為偽隨機函數。因為它支持「加鹽(salt)」和迭代操作,你可以使用類似的方法來哈希你的密碼。例如,如果你打算使用 SHA-256 加密方法,你將需要至少 16 個位元組的「鹽」,以及最少 100000 次的迭代操作。
簡單來說,「鹽」就是隨機的數據,被用來加入到哈希的過程中,以加大破解的難度。這基本可以保護你的密碼免受字典和彩虹表(rainbow table)的攻擊。
讓我們看一個簡單的例子:
>>> import binascii >>> dk = hashlib.pbkdf2_hmac(hash_name='sha256', password=b'bad_password34', salt=b'bad_salt', iterations=100000) >>> binascii.hexlify(dk) b''
這里,我們用 SHA256 對一個密碼進行哈希,使用了一個糟糕的鹽,但經過了 100000 次迭代操作。當然,SHA 實際上並不被推薦用來創建密碼的密鑰。你應該使用類似 scrypt 的演算法來替代。另一個不錯的選擇是使用一個叫 bcrypt 的第三方庫,它是被專門設計出來哈希密碼的。
『叄』 Python編程實現加密解密讀取文件
對Python加密時可能會有兩種形式,一種是對Python轉成的exe進行保護,另一種是直接對.py或者.pyc文件進行保護,下面將列舉兩種形式的保護流程。
1、對python轉exe加殼
下載最新版VirboxProtector加殼工具,使用加殼工具直接對demo.exe進行加殼操作
2、對.py/.pyc加密
第一步,使用加殼工具對python安裝目錄下的python.exe進行加殼,將python.exe拖入到加殼工具VirboxProtector中,配置後直接點擊加殼。
第二步,對.py/.pyc進行加密,使用DSProtector對.py/.pyc進行保護。
安全技術:
l虛擬機外殼:精銳5的外殼保護工具,創新性的引入了預分析和自動優化引擎,有效的解決了虛擬化保護代碼時的安全性和性能平衡問題。
l碎片代碼執行:利用自身成熟的外殼中的代碼提取技術,抽取大量、大段代碼,加密混淆後在安全環境中執行,最大程度上減少加密鎖底層技術和功能的依賴,同時大量大段地移植又保證了更高的安全性。
lVirbox加密編譯引擎:集編譯、混淆等安全功能於一身,由於在編譯階段介入,可優化空間是普遍虛擬化技術無法比擬的,對代碼、變數的混淆程度也有了根本的提升。
l反黑引擎:內置R0級核心態反黑引擎,基於黑客行為特徵 的(反黑資料庫)反制手段。精準打擊調試、注入、內存修改等黑客行為,由被動挨打到主動防護。
加密效果:
加密之前
以pyinstall 的打包方式為例,使用pyinstxtractor.py文件對log_322.exe進行反編譯,執行後會生成log_322.exe_extracted文件夾,文件夾內會生成pyc文件。
成功之後會在同目錄下生成一個文件夾
『肆』 求python中的愷撒密碼的加密,解密,以及破解的程序
凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經很流行,他的基本思想是:通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推X將變成A,Y變成B,Z變成C。由此可見,位數就是凱撒密碼加密和解密的密鑰。
如下代碼是以偏移量為13展開計算的。123
源代碼如下:
sr1="abcdefghijklmnopqrstuvwxyz"sr2=sr1.upper()
sr=sr1+sr1+sr2+sr2
st="The Zen of Python"sResult=""for j in st: if j==" ":
sResult = sResult +" "
continue
i=sr.find(j) if(i>-1):
sResult=sResult+sr[i+13]print sResult12345678910111213
運行結果為:
Gur Mra bs Clguba
『伍』 怎麼樣python爬蟲進行此網站爬取
是加密的,解密方法在JS裡面可以弄出來。
首先要AES解密,可以【Python:import Crypto.Cipher.AES】包,解密mode是CFB,seed是"userId:"+uid+":seed"的SHA256值,解密的key是seed[0:24],iv是seed[len(seed)-16:]。
如果沒有登錄,uid就是用的"anyone",這時候的seed是"",也就是key為"61581AF471B166682A37EFE6",iv為"C8F203FCA312AAAB"。
解密後文件是壓縮過的,解壓即可得到一個JSON。這部分解壓我沒仔細看他的演算法,好像是gzip,直接用【Python:import gzip】解壓有點出錯,可能沒用對或者不是這個演算法,你在研究一下。第二種投機的方法就是,可以通過【Python:import execjs】直接調用他的pako.js文件的JS的inflate()函數來解壓這塊。JS代碼混淆後看起來是非常難懂的,使用這種做法可以不用太看懂加密的演算法,效率當然寫Python實現這個解密演算法低1點咯。
最後的JSON再用【Python:import demjson】解析,text的value就是文檔。
『陸』 Lib實現的流數據加密,Python怎麼解密
hashlib是python專門用來加密解密的庫,有md5, sha1, sha224, sha256, sha384, sha512。
Python的hashlib提供了常見的摘要演算法,如MD5,SHA1等等。
什麼是摘要演算法呢?摘要演算法又稱哈希演算法、散列演算法。它通過一個函數,把任意長度的數據轉換為一個長度固定的數據串(通常用16進制的字元串表示)。
函數
用於計算用戶名和密碼相加得到的加密值。
def calc_md5(username, password):
md5 = hashlib.md5()
str_dd = username + password
md5.update(str_dd.encode('utf-8')) return md5.hexdigest()12345
測試源碼
# coding = utf-8##################################################### coding by 劉雲飛####################################################import hashlib
test_string = '123456'md5 = hashlib.md5()
md5.update(test_string.encode('utf-8'))
md5_encode = md5.hexdigest()
print(md5_encode)
sha1 = hashlib.sha1()
sha1.update(test_string.encode('utf-8'))
sha1_encode = sha1.hexdigest()
print(sha1_encode)123456789101112131415161718
輸出結果為
『柒』 求一個簡單的python數字加密解密演算法
用hash唄。
import hashlib
a = "a test string"
print hashlib.md5(a).hexdigest()
print hashlib.sha1(a).hexdigest()
print hashlib.sha224(a).hexdigest()
print hashlib.sha256(a).hexdigest()
print hashlib.sha384(a).hexdigest()
print hashlib.sha512(a).hexdigest()
針對str類型的。
加密的話,可以對最後得出的hash值再處理即可。比如左移,右移,某2位替換,某位加幾等等即可。
解密直接用逆序就可以了。
『捌』 python將原始字元串加3加密
Python 3 的標准庫中沒多少用來解決加密的,不過卻有用於處理哈希的庫。
如果需要用到安全哈希演算法或是消息摘要演算法,那麼你可以使用標准庫中的 hashlib 模塊。這個模塊包含了符合 FIPS(美國聯邦信息處理標准)的安全哈希演算法,包括 SHA1,SHA224,SHA256,SHA384,SHA512 以及 RSA 的 MD5 演算法。Python 也支持adler32 以及 crc32 哈希函數,不過它們在 zlib 模塊中。
『玖』 求一個DES 演算法 PHP python 通用 PHP進行加密 python解密
用hash唄。
import hashlib
a = "a test string"
print hashlib.md5(a).hexdigest()
print hashlib.sha1(a).hexdigest()
print hashlib.sha224(a).hexdigest()
print hashlib.sha256(a).hexdigest()
print hashlib.sha384(a).hexdigest()
print hashlib.sha512(a).hexdigest()
針對str類型的。
加密的話,可以對最後得出的hash值再處理即可。比如左移,右移,某2位替換,某位加幾等等即可。
解密直接用逆序就可以了。
『拾』 用Python2.7.10編寫凱撒密碼加密和解密程序
s=raw_input('[開始加密]pleaseinputyourstr:')
s=list(s)
n=0
forswins:
s[n]=chr(ord(sw)+3)
n=n+1
sout=''
forsw2ins:
sout=sout+sw2
print'[加密結果]:',sout
解密的類似,主要用到ord、chr函數。