關於python對接釘釘加解密實踐的信息

本文目錄一覽:

如何使用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 module 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() ‘1482ec1b2364f64e7d162a2b5b16f477’

實際上,有一種精簡的方法來創建哈希,下面我們看一下用這種方法創建一個 sha1 哈希:

sha = hashlib.sha1(b’Hello Python’).hexdigest() sha ‘422fbfbc67fe17c86642c5eaaa48f8b670cbed1b’

可以看到,我們可以同時創建一個哈希實例並且調用其 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’6e97bad21f6200f9087036a71e7ca9fa01a59e1d697f7e0284cd7f9b897d7c02′

這裡,我們用 SHA256 對一個密碼進行哈希,使用了一個糟糕的鹽,但經過了 100000 次迭代操作。當然,SHA 實際上並不被推薦用來創建密碼的密鑰。你應該使用類似 scrypt 的算法來替代。另一個不錯的選擇是使用一個叫 bcrypt 的第三方庫,它是被專門設計出來哈希密碼的。

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 進行保護。

安全技術:

l 虛擬機外殼:精銳5的外殼保護工具,創新性的引入了預分析和自動優化引擎,有效的解決了虛擬化保護代碼時的安全性和性能平衡問題。

l 碎片代碼執行:利用自身成熟的外殼中的代碼提取技術,抽取大量、大段代碼,加密混淆後在安全環境中執行,最大程度上減少加密鎖底層技術和功能的依賴,同時大量大段地移植又保證了更高的安全性。

l Virbox加密編譯引擎:集編譯、混淆等安全功能於一身,由於在編譯階段介入,可優化空間是普遍虛擬化技術無法比擬的,對代碼、變量的混淆程度也有了根本的提升。

l 反黑引擎:內置R0級核心態反黑引擎,基於黑客行為特徵 的(反黑數據庫)反制手段。精準打擊調試、注入、內存修改等黑客行為,由被動挨打到主動防護。

加密效果:

加密之前

以pyinstall 的打包方式為例,使用pyinstxtractor.py文件對log_322.exe進行反編譯,執行後會生成log_322.exe_extracted文件夾,文件夾內會生成pyc文件。

成功之後會在同目錄下生成一個文件夾

使用010 Editor添加幾個位元組,重命名為pyc文件

注【此處和python的版本有關,Python27的可以直接解壓為pyc文件,Python34還需要添加幾個位元組】

然後使用EasyPython Decompiler 工具反編譯pyc

成功之後通目錄下會生成dis文件,生成出的dis文件可以用文本編輯器打開,看到源碼

反編譯後的log_322.exe的源碼

加密之後:

【註:不同的打包方式原理不同,源碼存放的位置也不同,所以需要保護的具體模塊也是不同的】

加密之後再嘗試解壓log322.exe失敗,已經無法進行反編譯,使用常規反編譯工具也是無法進行分析的。

釘釘加密文件怎麼解密

如果你是用第三方加密軟件加密了文件,想用釘釘發出的話,那麼就需要管理員授權解密後才能正常發出,未授權解密的文件無論以任何形式發出都是無法正常打開使用的。據我了解很多加密軟件都是採用的這個原理,在內部環境是可以正常打開使用,但是需要外發就得授權解密。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/287188.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-23 13:08
下一篇 2024-12-23 13:08

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論