Ⅰ 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 進行保護。
Ⅱ python和c語言的區別
1、語言類型:Python是一種基於解釋器的語言,解釋器會逐行讀取代碼,將Python編譯為位元組碼,然後由大型C程序解釋;C是一種編譯語言,完整的源代碼將直接編譯為機器代碼,由CPU直接執行。
2、內存管理:Python使用自動垃圾收集器進行內存管理;C語言中程序員必須自己進行內存管理。
3、應用:Python是一門通用編程語言,一個多範式,面向對象編程、程序編程、函數編程;C是結構化的編程語言,允許使用函數,選擇,迭代,主要用於硬體相關的應用程序。
4、速度:在運行速度方面,Python比較慢,C語言比較快,因為C語言是底層語言,運行效率優於Python。
5、復雜度:Python不需要聲明變數類型,C語言需要聲明變數類型;Python更易於學習,編寫以及閱讀,而C語言語法更加難。
綜合情況來講,Python語言比C語言更加簡單易學、容易入門,而且Python就業前景好、發展方向廣泛、薪資待遇也很高。
Ⅲ C語言和python兩種語言有什麼區別
C是編譯語言
Python是解釋語言
這個是最大區別
其它區別基本都是基於這個的
除此外,c是面向過程的,py是面向對象的
大多數時候c做底層,py做上層,但這個並非絕對
其實應該找他倆一樣的地方,不一樣的地方實在太多啦
Ⅳ Python和c語言有什麼區別
前者為 腳本語言 需要虛擬機 解釋執行 ..一般情況下 不能生成exe(要使用打包工具)
後者為 為編譯型語言 ..可以直接轉換為 二進制 代碼 ...執行速度 也相對較快 ..
兩者可以混合編程
Ⅳ C語言程序如何調用python程序
下面是一個例子:
首先是python的一個簡單函數
class Hello:
def __init__(self, x):
self.a = x
def print(self, x=None):
print(x)
def xprint():
print("hello world")
if __name__ == "__main__":
xprint()
h = Hello(5)
h.print()1
下面是C語言
#include <python3.4m/Python.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
Py_Initialize();
// 將當前目錄加入sys.path
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
// 導入hello.py模塊
PyObject *pmole = PyImport_ImportMole("hello");
// 獲得函數xprint對象,並調用,輸出「hello world\n」
PyObject *pfunc = PyObject_GetAttrString(pmole, "xprint");
PyObject_CallFunction(pfunc, NULL);
// 獲得類Hello並生成實例pinstance,並調用print成員函數,輸出「5 6\n」
PyObject *pclass = PyObject_GetAttrString(pmole, "Hello");
PyObject *arg = Py_BuildValue("(i)", 5);
PyObject *pinstance = PyObject_Call(pclass, arg, NULL);
PyObject_CallMethod(pinstance, "print", "i", 6);
Py_Finalize();
return 0;
}
編譯命令如下:
gcc pyapi.c -lpython3.4m -o pyapi
Ⅵ 如何加密PYTHON程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
alp=' '
def num2alp(c):
a = alp[c]
return(a)
def alp2num(d):
if d != ' ':
return((ord(d)-97)%37)
else:
return 36
def envVigenere(key,plaintext):
m = len(plaintext)
n = len(key)
etext = ""
for i in range(m):
p = plaintext[i]
k = key[i%n]
num1 = alp2num(p)
num2 = alp2num(k)
num3 = (num1+num2)%37
f = num2alp(num3)
etext = etext + f
return(etext)
print(envVigenere('lemon','attack at dawn'))
Ⅶ 怎樣對 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
Ⅷ c語言編寫的程序,在輸入密碼時,如何加密
加密和解密演算法是程序編制中的重要一環。試想,如果我們平時使用的騰訊QQ、支付寶支付密碼、今日頭條賬號密碼那麼輕易就被別人盜取的話,很多不可以預料的事情就會發生!
在現實生活中,我們遇到過太多QQ密碼被盜取的情況,有的朋友QQ被盜之後,騙子利用朋友間信任騙取錢財的事情屢見不鮮。支付寶也曾出現過支付寶賬戶被惡意盜取的事件,對用戶利益造成了嚴重損害!這些在技術上都指向了同一相關問題:軟體加密演算法的強壯程度。今天,小編利用C語言來簡單實現一種加密方法。下面是源代碼。
需要說明:程序利用了ascii碼值的按照一定規律變換實現加密,對於解密過程,則是加密的逆過程。下面是程序的運行結果。
4190閱讀
搜索
編程免費課程300節
初學編程100個代碼
java自學一般要學多久
5秒破解excel密碼
python必背100源代碼
40歲零基礎學編程
Ⅸ python語言可以加密嗎
我們所說的加密方式都是對二進制編碼的格式進行加密,對應到python中,則是我們的bytes.
所以當我們在Python中進行加密操作的時候,要確保我們的操作是bytes,否則就會報錯.
將字元串和bytes互相轉換可以用encode()和decode()方法,如下所示:
注:兩位十六進制常常用來顯示一個二進制位元組.
推薦學習《python教程》。