cython加密代碼python_利用Cython對python代碼進行加密

利用Cython對python代碼進行加密

Cython是屬于PYTHON的超集,他首先會將PYTHON代碼轉化成C語言代碼,然后通過c編譯器生成可執行文件。優勢:資源豐富,適合快速開發。翻譯成C后速度比較快,在windows環境中用cython加密后的文件后綴是pyd文件,在linux環境中加密后的問題后綴是so文件,下面以linux環境作為演示

環境準備

系統環境:centos 7

Python版本:python3.x

需要的第三方包:cython

加密代碼部分

encryption.py

from distutils.core import setup

from Cython.Build import cythonize

setup(ext_modules = cythonize(["Jruing.py"])) # 列表中是要加密的文件名

要加密的代碼部分

Jruing.py

def hello_world():

print("hello world!!!")

將以上代碼保存為encryption.py,在命令行中輸入python encryption.py build_ext,它會在encryption.py這個文件的當前路徑下生成build文件夾,build/lib-*/Jruing-*.so (“*”部分代表的是Python版本等一系列信息,這個不重要,windows環境會在同樣的目錄下生成Jruing-*.pyd文件),我們可以把這個so文件直接重命名為Jruing.so

調用加密后的文件中的函數

我們進入到so文件所在的目錄,編寫一個調用hello_world的程序

from Jruing import hello_world # Jruing為so文件的文件名

hello_world()

加密Flask Web服務

flask 文件一般會創建一個app對象,它啟動也是通過這個app對象去啟動的,直接加密會加密成功,但是執行會出現問題,我們可以在調用文件中導入app對象,然后app.run()啟動就可以了,具體操作如下

一個flask web服務Demo

flask_demo.py

from flask import Flask

app = Flask(__name__)

@app.route('/',methods=['GET'])

def root():

return "hello world"

if __name__ == '__main__':

app.run(host='127.0.0.1',port=5000)

在加密之前我們把它改為

flask_demo_test.py

from flask import Flask

app = Flask(__name__)

@app.route('/',methods=['GET'])

def root():

return "hello world"

用上面提到的方法對flask_demo_test.py文件進行加密

調用flask_demo_test.py啟動服務

from flask_demo_test import app

app.run(host='127.0.0.1',port=5000)

這樣就好了!!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538199.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538199.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538199.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux ftp 命令

[deepenvd26wyjl01 ~]$ ftp IP地址 Connected to 10.xxxx.191 (10.xxxx191). 220-FileZilla Server 0.9.53 beta 220-written by Tim Kosse (tim.kossefilezilla-project.org) 220 Please visit https://filezilla-project.org/ Name (10.xxxx.191:deepen): yzcloud 331 Passwo…

android viewpager 間隔,viewpager 系統兼容 clipChildren 頁卡間距

此效果在4.4以下有個bug,兩邊的會有遮蓋,但是一滑動就沒事了。。。此時需要給viewpager設置onpagerchangedListener 刷新父布局invalidateviewpager.setPagerMargin();//設置頁卡間隔viewpager.setOffscreenPageLimit(); 設置緩存數量viewpager的父布局…

python web驗證碼_python web框架Flask——手機短信驗證碼

下列代碼都是以自己的項目實例講述的,相關的文本內容很少,主要說明全在代碼注釋中。我是使用阿里云云通信的短信服務,第一次使用會摸不著頭緒,這里我們需要做些準備工作:1、登陸自己的賬號進入阿里云官網,沒…

機器學習:樣本集、驗證集(開發集)、測試集

樣本集、驗證集(開發集)、測試集。 Ripley, B.D(1996)在他的經典專著Pattern Recognition and Neural Networks中給出了這三個詞的定義。 Training set: A set of examples used for learning, which is to fit the parameters [i…

Linux ftp傳送問題 WARNING! 258831 bare linefeeds received in ASCII mode

WARNING! 258831 bare linefeeds received in ASCII mode 原因是傳輸時ftp的傳輸類型不一致。 在上傳的時候,選擇傳輸類型為 二進制 在Linux上用ftp命令get的時候,也要設置二進制 ftp> binary // 設置傳輸方式為binary

html輸入支付密碼樣式,基于JS實現類似支付寶支付密碼輸入框

基于JS實現類似支付寶支付密碼輸入框2019-01-06編程之家https://www.jb51.cc編程之家收集整理的這篇文章主要介紹了基于JS實現類似支付寶支付密碼輸入框,編程之家小編覺得挺不錯的,現在分享給大家,也給大家做個參考。本文實現的是一個類似支付…

海康+螢石云+云存儲多少錢一個月_400萬極清畫質 螢石C6Wi智能家居攝像機

作為全球最大安防企業海康威視旗下子品牌,螢石以“家庭安防”切入智能家居市場,螢石C6Wi作為一款融合目前市面上云臺攝像頭最新設計和最全功能的產品,其外觀設計獲得多項國際大獎,支持2K分辨率(25601440)及4倍變焦拍攝、微光全彩、…

unzip 報錯error [clas.zip]:? missing 1844 bytes in zipfile

error [clas.zip]: missing 1844 bytes in zipfile 解決方法: http://blog.csdn.net/zengmingen/article/details/78604574

Vue+axios統一接口管理

通過axios請求接口已經很簡單了,但最近在做一個vue項目,想著把axios請求再封裝一下,這樣api就可以只在一處配置成方法,在使用的時候直接調用這個方法。 但咱們不用每個接口都定義成一個啰嗦的axios請求方法,既然是想簡…

html網頁 table布局實例,HTML用Table表格對網頁布局

HTML是用于開發網頁的“超文本標記語言”,今天我們一起來學習一下HTMLCSS網頁布局中Table布局方式。常見的網頁布局用CSS而言一般有經典行布局、經典列布局、雙飛翼布局、圣杯布局等。今天小編教大家用Table表格布局。大家先來欣賞幾個網頁:這幾個網頁布…

vue設置輸入框輸入長度_Vue實現input寬度隨文字長度自適應操作

業務需求,輸入文字,后面的元要緊隨其后,奈何input默認是有寬度,我想要達到,輸入文字,動態改變input的寬度,試了很多方法,目前自己琢磨一種,有遇到問題的可以參考一下,直接…

JDBC 連接Hive 簡單樣例(開啟Kerberos)

今天在移動的云平臺上通過jdbc連接hive,發現云平臺使用了 kerberos的認證。與寧波實驗環境不同。 發現一文解決了問題,轉載如下: 原文地址:http://blog.csdn.net/zengmingen/article/details/78605086 -----------------------…

新年快樂輪播特效html,基于owl-carousel的卡片水平輪播展示特效

這是一款基于owl-carousel的卡片水平輪播展示特效。該卡片輪播展示特效可以通過前后導航按鈕來切換卡片,它是響應式設計,在手機等小屏幕設備上,會自動調節為只展示一個卡片。使用方法在頁面中引入bootstrap.css和style.css文件,以…

parameter縮略語_“參數”的英文縮寫有嗎?

展開全部“參數”的英文e69da5e887aa3231313335323631343130323136353331333365643662縮寫是“parm”。1.音標:[ prɑ:m ]2.具體含義:參數3.雙語例句:It involves the same parameter as that involved in the enhancement factor for coagul…

JDBC實現從Hive抽取數據導入Oracle

環境:浙江移動華為云平臺 云平臺大數據采用了 Kerberos 認證。 開發歷程: 1、在寧波大數據實驗環境測試通過了JDBC實現從Hive抽取數據導入Oracle功能。 2、通過查看其它項目的數據庫訪問配置,知道了云平臺上的oracle配置。 3、獲取hive的…

加拿大計算機專業學什么,加拿大哥倫比亞大學計算機專業課程

計算機專業是加拿大哥倫比亞大學研究生熱門專業,很多準備申請加拿大研究生留學的都非常關心加拿大英屬哥倫比亞大學計算機專業研究生申請需要注意哪些問題?針對這個問題,出國留學小編為大家進行簡要介紹。英屬哥倫比亞大學計算機科學碩士專業優勢&#…

PC,移動端H5實現實現小球加入購物車效果

HTML部分&#xff1a; <!DOCTYPE html> <html> <head><meta http-equiv"content-type" content"text/html; charsetUTF-8"><title>基于jquery.fly模仿天貓拋物線加入購物車特效代碼</title><style>* {margin: 0…

云桌面部署_云桌面時代降臨-青椒云工作站

云計算理念是當代互聯網時代的新型理念&#xff0c;用戶享受的所有資源、所有應用程序全部都由一個存儲和運算能力超強的云端后臺來提供。云桌面是基于云計算技術&#xff0c;實現各種終端設備之間的互聯互通。我們的電子設備等都只是一個單純的顯示和操作終端&#xff0c;它們…

一些配置文件

--用戶用linux用戶&#xff0c;配置hadoop的Linux用戶。非hive連接mysql的用戶 HIVE_DRIVERorg.apache.hive.jdbc.HiveDriver HIVE_URLjdbc:hive2://192.168.78.128:10000/default HIVE_UserName root HIVE_PassWord 123456 ORACLE_DRIVERoracle.jdbc.driver.OracleDriver …

妙味css3課程---1-1、css中自定義屬性可以用屬性選擇器么

妙味css3課程---1-1、css中自定義屬性可以用屬性選擇器么 一、總結 一句話總結&#xff1a;可以的。 1、如何實現用屬性選擇器實現a標簽根據href里面含有的字段選擇背景圖片&#xff1f; p a[href*text]{background-image:url(img/text.gif);} 2、瀏覽器前綴在js中怎么寫&#…