簡體   English   中英

python中的求和哈希和鍵值

[英]Sumation hash and key value in python

我嘗試對 hash + Key 求和以獲得新的哈希值。

關鍵值:

a= "111631279578723877696242174"

SHA-256 的哈希值:

b = "7de8c9d1ce09fd2554fc0468ae52d5144800d3ae3ae9b075a3ba4494e5e55f50"

我的想法是將它們轉換為二進制值並將兩者相加,但出現錯誤:

V1= list(map(bin, bytearray(a, "utf-8")))
V2=list(map(bin, bytearray(b, "utf-8")))
sum = bin(int(V1, 2) + int(V2, 2)) 

錯誤:

TypeError: int() 無法轉換具有顯式基數的非字符串

我該如何解決這個錯誤,或者是否還有其他方法可以組合密鑰和散列?

原始答案

我想出了這種方法來組合它們:

>>> key=b'pvvFgKElhtkbDt0Lt7gOlcR4Kzwohz1UWZ8UzM2FKLg='
>>> _hash=b'gAAAAABiQX2cDIWlX4ySuBjkZsMyO09RiS0HJXEb7NvqfRbwj2W0rxko_fp1murmm6T1ZaE-dSkDOGNm1yA7bsq-rjXeiM-ckg=='
>>> hex(int.from_bytes(key,'little')+int.from_bytes(_hash,'little')).removeprefix("0x")

結果:

'3d3d6734373347716c355342313549617a2d4b697357527347384b495f49723132635a6c62436a6b6768586e66486950735265487650723783a99c90a57495f0aa819ea5c96abd99d6cfcb7c78aaabb2b39c8fbec175bdb38f9eccb9d5878ca887b7b7d7'

編輯

如果您想組合它們並在擁有密鑰時仍能取回哈希值,您可以簡單地使用 xor。 這在許多對稱加密算法中都有使用,因為您可以通過對加密值和密鑰使用異或來獲得原始值。 簡而言之,我們關心的異或值的基本屬性是:

  • encrypted = original_value ^ key
  • original_value = encrypted ^ key

如果您有密鑰,那么您可以使用加密的密鑰獲得原始值。

具體實施

這是我剛剛寫的想法的實現。

import math


key=b'pvvFgKElhtkbDt0Lt7gOlcR4Kzwohz1UWZ8UzM2FKLg='
_hash=b'h\x05h\xc5\x14\xd4*\x10\x81\xf9\x84\nw\xe8\xc7M\x8bH\xf3\xc32\x97\xc2\x9f\x88@\xb5\xffH] v'

encrypted_int = int.from_bytes(_hash,'little') ^ int.from_bytes(key,'little')

lenght_bytes_encrypted = math.ceil(math.log(encrypted_int,0xFF))
print("encrypted form: ",encrypted_int.from_bytes(lenght_bytes_encrypted,'little')

#transforming back to _hash
hash_int = encrypted_int ^ int.from_bytes(key,'little')
lenght_bytes = math.ceil(math.log(hash_int,0xFF))
normal = hash_int.to_bytes(lenght_bytes,'little')
print("converted to base form:",normal)

輸出

encrypted form:  b"\x1777\x07&\n\x07\x059,Y\x01\x00=g ,\x03\x1e\x1c\x19!8_\x11\t:\x16'J\x08\x07>\t\x08\x1d0\x15w$|\x02\x11LfRbwj2W0rxko_fp1murmm6T1ZaE-dSkDOGNm1yA7bsq-rjXeiM-ckg=="
converted base form: b'pvvFgKElhtkbDt0Lt7gOlcR4Kzwohz1UWZ8UzM2FKLg='

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM