python代碼加密
import rsa rsaPublickey = int(pubkey, 16) key = rsa.PublicKey(rsaPublickey, 65537) #創建公鑰 message = str(servertime) + '\t' + str(nonce) + '\n' + str(password) #拼接明文js加密文件中得到 passwd = rsa.encrypt(message, key) #加密 passwd = binascii.b2a_hex(passwd) #將加密信息轉換為16進制。 return passwd
B. Python程序加密打包
步驟:
   1、使用此文程序編譯python源程序為pyd
   鏈接: https://www.jianshu.com/p/4465cf9283b6 
   2、編寫入口py文件,調用pyd模塊
   注意點:
   1、由於pyinstaller不會導入pyd程序依賴包,所以需要將pyd程序依賴包在入口py文件中導入一次,避免打包exe時pyd無法使用
   2、打包exe後,路徑有所變化,pyd中路徑需使用絕對路徑
   3、pyd文件不要寫入口調用,if main等,在入口py文件中導包及調用相關函數
  
 優點:脫離python環境,包依賴
   缺點:文件較大
   步驟:
   1、將入口py文件打包為exe可執行程序,會自動導入pyd文件並進行封裝
   注意點:
   1、打包exe後,cmd下運行程序,看是否有錯誤輸出,按提示解決相應問題即可
C. 怎樣對 Python 源碼加密
代碼加密
大概整理了以下幾種方法:
編譯成pyc文件
使用py2exe將python代碼轉成window下執行的exe文件
關鍵代碼部分使用c或者c++寫,然後在python中調用
用C寫一個license,進行license驗證
作為一門解釋型的語言,加密的難度超級大。下面來簡單分析上面的解決方案:
編譯成pyc文件幾乎跟pyc沒有區別,保護力度太低
要是在linux機器上就沒法使用,而且這種exe文件也可以被破解的
核心代碼部分是計算密集型,用的是pandas,numpy等庫,用c重寫,簡直不可能,工作量太大。
沒搞過,不知道………
看來上面的解決方案都是不行的,在stackoverflow上對這個問題也進行了詳細的討論,用我蹩腳的英文來翻譯(意譯)一下得票率最高的:
「有什麼方法來解決這個問題嗎?(加密的問題)」沒有。任何保護都可以被逆向工程破解。就連DVD機的固件都可以被破解,盡管法律判定其為非法,但是AACS加密密鑰還是泄露出來。 
因為沒有技術的方法可以阻止你的客戶看你的代碼,你必須用傳統的商業方法。 
1. 許可證,合約,條款,條件。只要用戶簽訂了這些東西,及時用戶可以看見代碼,也會有法律約束(不過此建議在中國目前貌似不頂用) 
2. 提供巨大的價值。如果你的東西非常好,而且價格很合理,那麼用戶很難拒絕——沒必要浪費時間和金錢去搞逆向工程啥的,因為逆向工程是很費銀子的。讓你的產品有足夠的性價比。 
3. 經常性的升級和增加新的功能,使得逆向工程不那麼好使。當下一個版本破壞了逆向工程,那麼以前的破解就沒有意義了。 
4. 定製化生產,為不同的客戶提供不同的產品。(貌似代價有點高啊) 
5. 使用有時間限制的許可證,這會給你帶來不好的名聲,但是會保證你的軟體會停止工作 
6. 設計為web service.
代碼混淆
既然加密不是一個好方法,那要還是不死心,那就做一個簡單的混淆算了,雖然只能」防君子,不防小人「。但是不能就這樣把代碼暴露出來。 
這里推薦一個找了好久的東西: pyobfuscate這個東西在window7中的cmd中貌似總是混淆失敗,無奈用了MINGW32,居然搞定了。官方的資料有這樣的介紹:
pyobfuscate有幾種轉化代碼的方式,有些可逆,有些不可逆。
移除注釋和文檔 ( 不可逆)
改變縮進(可逆)
在tokens之間加入空格(一定程度上可逆)
重命名函數,類,和變數(不可逆)
在空白行中加入無效的代碼
我沒有選擇混淆函數名和類名,因為其他地方還要調用呢。下面是我混淆的結果,還挺好看的:
def my_fuction_to_test ( self , start_date , end_date ) :
iiiii11iII1 = self . get_something ( start_date , end_date )
O0o = [ ]
for oO0 in iiiii11iII1 :
if oO0 [ "isOpen" ] == 1 :
IIIi1i1I = { }
OOoOoo00oo = dt . strptime ( oO0 [ 'calendarDate' ] , '%Y-%m-%d' )
IIIi1i1I [ 'day' ] = OOoOoo00oo . strftime ( '%Y%m%d' )
IIIi1i1I [ 'week' ] = oO0 [ 'isWeekEnd' ]
IIIi1i1I [ 'month' ] = oO0 [ 'isMonthEnd' ]
IIIi1i1I [ 'weekday' ] = OOoOoo00oo . weekday ( )
O0o . append ( IIIi1i1I )
iiI11 = pd . DataFrame ( O0o )
return iiI11
D. python 如何保密源代碼
python 如何保密源代碼?
相關推薦:《Python教程》
加密方式
對 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 進行保護。
E. 如何在python加密自己的密碼
加密有很多種加密方式,常用的加密是md5加密,給你寫個例子
importhashlib
defmd5(str):
m=hashlib.md5()
m.update(str.encode("utf8"))
print(m.hexdigest())
returnm.hexdigest()
defmd5GBK(str1):
m=hashlib.md5(str1.encode(encoding='gb2312'))
print(m.hexdigest())
returnm.hexdigest()
md5('hello')
md5GBK('你好')
F. python文本加密是什麼
python文本加密是Python 提供了諸如 hashlib,base64 等便於使用的加密庫,我們可以藉助異或操作,實現一個簡單的文件加密程序。
通過了解異或操作的性質,加密原理就非常清晰了。
首先將文件轉換成二進制數,再生成與該二進制數等長的隨機密鑰,將二進制數與密鑰進行異或操作,得到加密後的二進制數。
將加密後的二進製程序與密鑰進行異或操作,就得到原二進制數,最後將原二進制數恢復成文本文件。
相關拓展
加密,是以某種特殊的演算法改變原有的信息數據,使得未授權的用戶即使獲得了已加密的信息,但因不知解密的方法,仍然無法了解信息的內容。
加密之所以安全,絕非因不知道加密解密演算法方法,而是加密的密鑰是絕對的隱藏,流行的RSA和AES加密演算法都是完全公開的,一方取得已加密的數據,就算知道加密演算法也好,若沒有加密的密鑰,也不能打開被加密保護的信息。
單單隱蔽加密演算法以保護信息,在學界和業界已有相當討論,一般認為是不夠安全的。公開的加密演算法是給黑客和加密家長年累月攻擊測試,對比隱蔽的加密演算法要安全得多。
盡管加密或為了安全目的對信息解碼這個概念十分簡單,但在這里仍需對其進行解釋。數據加密的基本過程包括對稱為明文的原來可讀信息進行翻譯,譯成稱為密文或密碼的代碼形式。該過程的逆過程為解密,即將該編碼信息轉化為其原來的形式的過程。
以上內容參考 網路-加密
G. 如果Python的源代碼無法保密,那不是說所有的演算法大夥都可以用
可以使用pymod對代碼加密部署
先睹為快,看看一個項目發布的時候,只有幾個文件,
main.py 項目程序入口
setting.py 項目配置
apps 項目模塊
plusins 項目插件目錄

pymod 使用指南,訪問https://pymod.cn
H. python將原始字元串加3加密
Python 3 的標准庫中沒多少用來解決加密的,不過卻有用於處理哈希的庫。
如果需要用到安全哈希演算法或是消息摘要演算法,那麼你可以使用標准庫中的 hashlib 模塊。這個模塊包含了符合 FIPS(美國聯邦信息處理標准)的安全哈希演算法,包括 SHA1,SHA224,SHA256,SHA384,SHA512 以及 RSA 的 MD5 演算法。Python 也支持adler32 以及 crc32 哈希函數,不過它們在 zlib 模塊中。
I. 利用以下python代碼編寫欄柵加密和解密
修改後運行結果:
a. 加密
1.進行柵欄加密
2.進行柵欄解密
請選擇: 1
請輸入分組數目 2
請輸入列排編號 21
請輸明文 abcdefgh
b a 
d c 
f e 
h g 
b. 解密
1.進行柵欄加密
2.進行柵欄解密
請選擇: 2
請輸入分組數目 2
請輸入列排編號 21
請輸密文 b a d c f e h g
abcdefgh
修改後的代碼:
def Encrypt(n,col,M):
    row=len(M)/n
    if len(M)%n>0:
        row+=1
    arr=[[""for x in range(0,n)] for y in range(0,row)]
    x=0
    for i in range(0,row):
        for j in range(0,n):
            if x<len(M):
                arr[i][j]=M[x]
                #print M[x],
            x+=1
        #print "\r\n"
    for i in range(0,row):
        for j in range(0,n):
            m=int(col[j])-1
            print arr[i][m],
        print "\r\n"
def Decrypt(n, col, C):
    C="".join(C.split())
    row=len(C)/n
    if len(C)%n>0:
        row+=1
    arr=[[""for x in range(0,n)] for y in range(0,row)]
    x=0
    for i in range(0,row):
        for j in range(0,n):
            if x<len(C):
                arr[i][j]=C[x]
                #print C[x],
            x+=1
        #print "\r\n"
    M=""
    for i in range(0,row):
        for j in range(0,n):
            m=int(col[j])-1
            #print arr[i][m],
            M+=arr[i][m]
        #print "\r\n"
    print M
print u"1.進行柵欄加密\r\n2.進行柵欄解密\r\n請選擇:".encode("gb2312"),
sel=raw_input()
if int(sel)==1:
    print u"請輸入分組數目".encode("gb2312"),
    n=int(raw_input())
    print u"請輸入列排編號".encode("gb2312"),
    col=raw_input()
    print u"請輸明文".encode("gb2312"),
    M=raw_input()
    while len(M)<n*3:
        print u"明文必須是分組數目的3倍".encode("gb2312")
        M=raw_input()
    Encrypt(n,col,M)
else :
        print u"請輸入分組數目".encode("gb2312"),
        n=int(raw_input())
        print u"請輸入列排編號".encode("gb2312"),
        col=raw_input()
        print u"請輸密文".encode("gb2312"),
        C=raw_input()
        while len(C)<n*3:
            print u"密文必須是分組數目的3倍".encode("gb2312")
            C=raw_input()
        Decrypt(n,col,C)
J. python封裝成exe如何加密
可以直接用加密軟體加密。據了解加密軟體可以加密所有類型文件的,可以對文件進行透明加密,在內部環境文件是可以正常打開的,脫離這個環境則打不開或亂碼,可以禁止截屏、拷貝、復制、列印、修改等。文件外發需授權解密,未授權解密無論以任何形式發出都是無法正常打開的,還可設置文件外發的瀏覽次數和打開時間。在不影響日常使用的情況下保障文件安全。
