1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      混淆函數(shù)python 函數(shù)名混淆

      python?的混淆后的代碼可以還原么

      你好,混淆后一般無法還原,但是你可以還原成MSIL語言。大多數(shù)混淆都是流程也混淆,如果流程也混淆了的話那就更不可能還原了。一般混淆后只能跟蹤執(zhí)行,找出程序的執(zhí)行算法。

      成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供宜城網(wǎng)站建設(shè)、宜城做網(wǎng)站、宜城網(wǎng)站設(shè)計、宜城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、宜城企業(yè)網(wǎng)站模板建站服務(wù),十載宜城做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

      Python sklearn.metrics模塊混淆矩陣常用函數(shù)

      1.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)

      參數(shù)分別為y實際類別、預(yù)測類別、返回值要求(True返回正確的樣本占比,false返回的是正確分類的樣本數(shù)量)

      eg:

      import numpy as np

      from sklearn.metrics import accuracy_score

      y_pred = [0, 2, 1, 3]

      y_true = [0, 1, 2, 3]

      accuracy_score(y_true, y_pred)

      0.5

      accuracy_score(y_true, y_pred, normalize=False)

      2.classification_report(y_true, y_pred, labels=None, target_names=None, sample_weight=None, digits=2)

      參數(shù):真是類別,預(yù)測類別,目標(biāo)類別名稱

      eg:

      3.confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)

      輸出為混淆矩陣

      eg:

      太多了,寫3個常用的吧,具體參考help(metrics)

      defcm_plot(y,yp):#參數(shù)為實際分類和預(yù)測分類

      fromsklearn.metricsimportconfusion_matrix

      #導(dǎo)入混淆矩陣函數(shù)

      cm = confusion_matrix(y,yp)

      #輸出為混淆矩陣

      importmatplotlib.pyplotasplt

      #導(dǎo)入作圖函數(shù)

      plt.matshow(cm,cmap=plt.cm.Greens)

      # 畫混淆矩陣圖,配色風(fēng)格使用cm.Greens

      plt.colorbar()

      # 顏色標(biāo)簽

      forxinrange(len(cm)):

      foryinrange(len(cm)):

      plt.annotate(cm[x,y],xy=(x,y),horizontalalignment='center',verticalalignment='center')

      #annotate主要在圖形中添加注釋

      # 第一個參數(shù)添加注釋

      # 第一個參數(shù)是注釋的內(nèi)容

      # xy設(shè)置箭頭尖的坐標(biāo)

      #horizontalalignment水平對齊

      #verticalalignment垂直對齊

      #其余常用參數(shù)如下:

      # xytext設(shè)置注釋內(nèi)容顯示的起始位置

      # arrowprops 用來設(shè)置箭頭

      # facecolor 設(shè)置箭頭的顏色

      # headlength 箭頭的頭的長度

      # headwidth 箭頭的寬度

      # width 箭身的寬度

      plt.ylabel('True label')# 坐標(biāo)軸標(biāo)簽

      plt.xlabel('Predicted label')# 坐標(biāo)軸標(biāo)簽

      returnplt

      #函數(shù)調(diào)用

      cm_plot(train[:,3],tree.predict(train[:,:3])).show()

      python loc=None

      這是一個值。

      在Python中有一個值稱為None,它表示沒有值None是NoneType數(shù)據(jù)類型的唯一值就像布爾值True和False一樣,None必須大寫首字母N如果你希望變量中存儲的東西不會與一個真正的值混淆,這個沒有值的值就可能有用有一個使用None的地方就是print()的返回值print()函數(shù)在屏幕上顯示文本,但它不需要返回任何值,這和len()或input()不同但既然所有函數(shù)調(diào)用都需要求值為一個返回值,那么print()就返回None。

      Python由荷蘭數(shù)學(xué)和計算機科學(xué)研究學(xué)會的吉多·范羅蘇姆于1990年代初設(shè)計,作為一門叫做ABC語言的替代品Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊獭?/p>

      python混淆代碼后還能找回來么

      Python程序的混淆和加密

      混淆

      為了增加代碼閱讀的難度, 源代碼的混淆非常必要, 一個在線的Python代碼混淆網(wǎng)站. 如果你覺得有用, 可以購買離線版本.

      同時需要注意的是, 這個混淆其實還是被很多人懷疑的, 因為即使混淆了, 也沒有改變代碼的結(jié)構(gòu). 所以, 必要的話, 在編程的時候, 可以故意做點提高逆向難度的事情:

      結(jié)構(gòu)稍微改變, 合并幾個類到同一個文件.

      面向?qū)ο蟮慕Y(jié)構(gòu)中, 偶爾穿插一些無傷大雅的范式編程風(fēng)格.

      加密

      最基本的方法是發(fā)布pyc文件, 也就是將所有的.py源文件轉(zhuǎn)換成pyc對外發(fā)布. 詳情可以參考一個blog.

      pyc有一個局限性是依賴于python解析器的版本, 使用某一個版本的python解釋器生成的pyc必須要在相同版本下的python解釋器下才可以正常工作.

      使用上述方法可以方便的生成pyc, 初步的隱藏代碼了. 不過pyc依然可以被容易的破解, 所以另一種方案是借助cython. cython可以將python文件轉(zhuǎn)換成c, 并編譯成pyd文件. 一般將核心模塊編譯成pyd, 這樣被破解的風(fēng)險就大大降低了. 關(guān)于如何使用cython可以參考官網(wǎng)或者這篇文章 或者 這篇

      有一個經(jīng)驗之談, 你可以將所有每個模塊中的某個一個位置的變量抽出, 放到一個python文件中, 使用cython來處理這個文件. 這樣就會增加破解者從其他pyc文件中移除pyd文件依賴的難度了.

      總結(jié)

      Stackoverflow上有一個長貼關(guān)于隱藏python代碼實現(xiàn)的. 有興趣的可以讀這里. 技術(shù)上方法和手段都是有的, 但是還有不可忽視的一點是法律上的保護和約定.

      什么是pyc文件

      pyc是一種二進制文件,是由py文件經(jīng)過編譯后,生成的文件,是一種byte code,py文件變成pyc文件后,加載的速度有所提高,而且pyc是一種跨平臺的字節(jié)碼,是由python的虛擬機來執(zhí)行的,這個是類似于JAVA或者.NET的虛擬機的概念。pyc的內(nèi)容,是跟python的版本相關(guān)的,不同版本編譯后的pyc文件是不同的,2.5編譯的pyc文件,2.4版本的 python是無法執(zhí)行的。

      什么是pyo文件

      pyo是優(yōu)化編譯后的程序 python -O 源文件即可將源程序編譯為pyo文件

      什么是pyd文件

      pyd是python的動態(tài)鏈接庫。

      為什么需要pyc文件

      這個需求太明顯了,因為py文件是可以直接看到源碼的,如果你是開發(fā)商業(yè)軟件的話,不可能把源碼也泄漏出去吧?所以就需要編譯為pyc后,再發(fā)布出去。當(dāng)然,pyc文件也是可以反編譯的,不同版本編譯后的pyc文件是不同的,根據(jù)python源碼中提供的opcode,可以根據(jù)pyc文件反編譯出 py文件源碼,網(wǎng)上可以找到一個反編譯python2.3版本的pyc文件的工具,不過該工具從python2.4開始就要收費了,如果需要反編譯出新版本的pyc文件的話,就需要自己動手了(俺暫時還沒這能力^--^),不過你可以自己修改python的源代碼中的opcode文件,重新編譯 python,從而防止不法分子的破解。

      python是否有繪制混淆矩陣的函數(shù),怎么來實現(xiàn)

      #?-*-?coding:?UTF-8?-*-

      """繪制混淆矩陣圖"""

      import?matplotlib.pyplot?as?plt

      from?sklearn.metrics?import?confusion_matrix

      def?confusion_matrix_plot_matplotlib(y_truth,?y_predict,?cmap=plt.cm.Blues):

      """Matplotlib繪制混淆矩陣圖

      parameters

      ----------

      y_truth:?真實的y的值,?1d?array

      y_predict:?預(yù)測的y的值,?1d?array

      cmap:?畫混淆矩陣圖的配色風(fēng)格,?使用cm.Blues,更多風(fēng)格請參考官網(wǎng)

      """

      cm?=?confusion_matrix(y_truth,?y_predict)

      plt.matshow(cm,?cmap=cmap)??#?混淆矩陣圖

      plt.colorbar()??#?顏色標(biāo)簽

      for?x?in?range(len(cm)):??#?數(shù)據(jù)標(biāo)簽

      for?y?in?range(len(cm)):

      plt.annotate(cm[x,?y],?xy=(x,?y),?horizontalalignment='center',?verticalalignment='center')

      plt.ylabel('True?label')??#?坐標(biāo)軸標(biāo)簽

      plt.xlabel('Predicted?label')??#?坐標(biāo)軸標(biāo)簽

      plt.show()??#?顯示作圖結(jié)果

      if?__name__?==?'__main__':

      y_truth?=?[1,?0,?1,?1,?1,?1,?1,?1,?1,?1,?0,?0,?0,?0,?0]

      y_predict?=?[1,?0,?0,?1,?0,?1,?1,?1,?1,?1,?0,?1,?0,?1,?0]

      confusion_matrix_plot_matplotlib(y_truth,?y_predict)

      Python程序代碼混淆、編譯、打包、運行(桌面程序防破解向)

      像Python這種解釋性的語言,要想私有化部署的同時又保護好源碼,就像是對于魚和熊掌的追求。

      雖然做不到盡善盡美,但是對代碼進行混淆,增加一點破解的難度,或許能規(guī)避一些泄露的風(fēng)險。

      本次演示環(huán)境:linux

      確保要發(fā)布的包根目錄("demo")中有__main__.py文件,這個是程序執(zhí)行入口。

      編譯

      批量改名.pyc文件

      移動.pyc文件

      清理.py文件

      清理__pycache__文件夾

      打包成zip

      運行時只要將zip文件作為參數(shù)即可

      最終整合腳本

      調(diào)用方式

      對于在變量和函數(shù)名上的混淆有點小兒科,而對于跨文件的類名的混淆又太容易實現(xiàn)。

      所以對于混淆程度的取舍,要視工程的規(guī)模而定。

      2.1 混淆工具pyminifier

      在原來的工具 pyminifier上修復(fù)了幾個bug。

      安裝:

      python3 安裝

      或者clone下來,自行安裝

      使用例子

      2.2 源碼變更

      不同的配置對于源碼的要求不同,以下是筆者踩過的坑。

      其他混淆想法

      結(jié)合混淆、編譯和打包,嘗試出以下發(fā)布腳本。

      主要的思路 :創(chuàng)建一個工作目錄tmp,然后在此目錄下混淆、編譯python代碼,完成后把內(nèi)容打包成pyc文件,再將pyc文件和其他配置文件移動到dist,發(fā)布dist即可。

      混淆的目的是最大程度保護源碼,在發(fā)布到客戶端后不被輕易破解。


      網(wǎng)站題目:混淆函數(shù)python 函數(shù)名混淆
      URL標(biāo)題:http://www.ef60e0e.cn/article/dosdged.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        民勤县| 修武县| 黑水县| 兴化市| 治多县| 朝阳县| 衡水市| 武邑县| 独山县| 石屏县| 新竹县| 泰和县| 拉萨市| 莱阳市| 米易县| 杨浦区| 荆门市| 高雄市| 兴隆县| 苍梧县| 阿合奇县| 建宁县| 台州市| 漳州市| 克拉玛依市| 海南省| 始兴县| 青海省| 英德市| 陆良县| 班玛县| 东兰县| 鲁山县| 清丰县| 武城县| 怀仁县| 中宁县| 东至县| 东海县| 云浮市| 平塘县|