『壹』 加密演算法md5和sha1是得到加密結果後是不可以解密的。那有沒有可以解密的

搜索RSA,DES演算法

『貳』 如何使用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 <mole> 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() ''

實際上,有一種精簡的方法來創建哈希,下面我們看一下用這種方法創建一個 sha1 哈希:
>>> sha = hashlib.sha1(b'Hello Python').hexdigest() >>> sha ''

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

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

『叄』 求一個簡單的python數字加密解密演算法

用hash唄。
import hashlib

a = "a test string"
print hashlib.md5(a).hexdigest()
print hashlib.sha1(a).hexdigest()
print hashlib.sha224(a).hexdigest()
print hashlib.sha256(a).hexdigest()
print hashlib.sha384(a).hexdigest()
print hashlib.sha512(a).hexdigest()

針對str類型的。
加密的話,可以對最後得出的hash值再處理即可。比如回左移,右移,某答2位替換,某位加幾等等即可。
解密直接用逆序就可以了。

『肆』 sha1加密 python 可逆么

首先,它不可逆,沒有系統的方法可以知道MD5碼原來的文字是什麼
其次,這個碼具有高度的離散性,沒有規律可循。哪怕原信息的一點點變化就會導致MD5的巨大變化,也可以說產生的MD5 碼是不可預測的。
最後,由於這個碼有128位那麼長,所以任意信息之間具有相同MD5碼的可能性非常之低,通常被認為是不可能的。

『伍』 python中如何獲取sha1值賦給變數

你好,我覺得你可以將openssl dgst -sha1的結果結果放到一個文件,然後讓python讀取那個文件,就可以了
os.system(openssl dgst -sha1 > log1)
with open(log1, "r") as f:
.......

『陸』 md5、sha1的散列值位數及作用,是否可以解密還原

MD5 和SHA-1 是目前使用比較廣泛的散列(Hash)函數,也是在消息認證和數字簽名中普遍使用的兩種加密演算法。本文基於AVR
高速嵌入式單片機,實現了MD5和SHA-1
兩種加密演算法的比較,並對演算法進行了匯編語言的優化和改進。根據實驗結果,對兩種演算法的優缺點進行了比較和分析。

0 引言
隨著信息技術和Internet
的迅速發展,信息安全和可靠性問題越來越重要。現在信息安全面臨兩大基本攻擊:被動式攻擊(獲取消息的內容、業務流分析)和主動攻擊(假冒、消息的篡改、業務拒絕)。前者主要靠加密和解密技術進行有效處理,而後者就要靠消息認證來處理。在金融交易、電子商務、電子信件、手機用戶信息的確認等領域,數據完整性確認和數據來源的真偽鑒定都是很重要的安全服務。實現這些安全服務的最好方法就是使用加密函數中的單項散列(Hash)函數。單項散列(Hash)函數是一種單項密碼體制,它是一個從明文到密文的不可逆函數,也就是說,是無法解密的。通常應用在只需要加密、不需要解密的特殊應用場合。單項散列(Hash)函數H(M)作用於一任意長度的消息M,它返回一固定長度的散列值h:h=H(M)作為初始消息的獨一無二的「數字指紋」,從而能保證數據的完整性和惟一性。

3.1 MD5 與SHA-1 的比較
由於MD5 與SHA-1均是從MD4 發展而來,它們的結構和強度等特性有很多相似之處,表(1)是對MD5 與SHA-1
的結構比較。SHA-1與MD5 的最大區別在於其摘要比MD5 摘要長 32
比特。對於強行攻擊,產生任何一個報文使之摘要等於給定報文摘要的難度:MD5 是2128 數量級的操作,SHA-1 是2160
數量級的操作。產生具有相同摘要的兩個報文的難度:MD5是 264 是數量級的操作,SHA-1 是280 數量級的操作。因而,SHA-1
對強行攻擊的強度更大。但由於SHA-1 的循環步驟比MD5 多(80:64)且要處理的緩存大(160 比特:128 比特),SHA-1
的運行速度比MD5 慢。
5 結束語
MD5 和SHA-1 是單項散列函數的典型代表,它們廣泛地應用在信息安全和數字簽名等各個領域。從而有效地抗擊了信息的主動式攻擊,本文基於AVR
單片機實現了這兩種演算法,並結合匯編語言盡心了優化,取得了較好的效果。根據信息安全的要求的不同層次可以靈活選擇這兩種演算法從而達到實際目的。

『柒』 sha1 解密後的字元串是什麼意思

樓主是想在WEB.CONFIG文件中加密資料庫聯接字元串吧?

web.config中加密連接字元串
舊版本的ASP.NET將連接字元串直接保存在ASPX頁面中。回想一下,連接字元串包含了數據伺服器名稱和用戶賬戶等信息,有時候甚至還包含了密碼。在代碼中包含以上信息是非常不好的習慣,原因有二。首先,這些信息可以被設計小組中的每一位程序人員看到(但是站點訪問者不能在瀏覽器上看到)。第二,在整個Web站點中的每一個擁有該連接的地方,都必須進行維護和更新。更新密碼成為了一項繁重的工作。

ASP.NET 2.0提供了一個選項可以將連接字元串移動至Web.config文件的連接區域,給字元串一個名稱並將其加密。然後ASP.NET 2.0頁面就通過這個名稱來引用連接字元串。保存連接字元串至Web.config的步驟並不復雜。打開位於站點根目錄下的Web.config文件。找到被<connectionString>界定的區域(如果不存在,可自行添加)並在<Add>標記中輸入如下代碼。該標記有三個屬性:name、connectionString和providerName。屬性name就是將會在頁面中使用的連接字元串的普通名稱。connectionString屬性應當設置為連接至資料庫的完整的連接字元串,如前所述。

『捌』 Lib實現的流數據加密,Python怎麼解密

hashlib是python專門用來加密解密的庫,有md5, sha1, sha224, sha256, sha384, sha512。
Python的hashlib提供了常見的摘要演算法,如MD5,SHA1等等。
什麼是摘要演算法呢?摘要演算法又稱哈希演算法、散列演算法。它通過一個函數,把任意長度的數據轉換為一個長度固定的數據串(通常用16進制的字元串表示)。
函數
用於計算用戶名和密碼相加得到的加密值。
def calc_md5(username, password):
md5 = hashlib.md5()
str_dd = username + password
md5.update(str_dd.encode('utf-8')) return md5.hexdigest()12345

測試源碼
# coding = utf-8##################################################### coding by 劉雲飛####################################################import hashlib

test_string = '123456'md5 = hashlib.md5()
md5.update(test_string.encode('utf-8'))
md5_encode = md5.hexdigest()
print(md5_encode)

sha1 = hashlib.sha1()
sha1.update(test_string.encode('utf-8'))
sha1_encode = sha1.hexdigest()
print(sha1_encode)123456789101112131415161718

輸出結果為

『玖』 python SHA1與java sha1運算結果不一致。怎麼解決

是否以文本形式打開是文件,應該是二進制形式計算
http://www.cnblogs.com/thinkingfor/archive/2010/09/13/1824766.html

『拾』 javascript sha1的解密語句是什麼已經有sha1的js庫了,而且加密語句知道了,就差解密語句!!!

題主確定知道什麼是 SHA-1 嗎?

這不是加密演算法,而是摘要(哈希)演算法,國內經常把二者搞混。

區別就在於,加密演算法可逆,即通過一定的計算,明文、密文可以互推;摘要演算法不可逆,即原文計算後可以得到摘要,但根據摘要不可計算得原文(彩虹表並非「計算」所得)。