Skip to main content

3 posts tagged with "Python"

View All Tags

· 3 min read

研究了一下文件, 沒看到能剛好 fit 手邊需求的用法@@...

以官方文件的示範為例,建立一個 Enum:

class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3


print(Color._member_map_)
# {'RED': <Color.RED: 1>, 'GREEN': <Color.GREEN: 2>, 'BLUE': <Color.BLUE: 3>}

如果想要增加一個 ClassVar _favorite 紀錄某些 member, 例如:

class Color2(Enum):
RED = 1
GREEN = 2
BLUE = 3
_favorite = {RED, BLUE}


print(Color2._member_map_)
# {'RED': <Color2.RED: 1>, 'GREEN': <Color2.GREEN: 2>, 'BLUE': <Color2.BLUE: 3>, '_favorite': <Color2._favorite: {1, 3}>}

但是 _favorite 會被當做 enum member ...

· 5 min read
m9H8

SHA-1 是一種 SHA (Secure Hash Algorithm),SHA 是被美國聯邦政府所訂製的標準認證過的 Hash function,目前常被使用的有 SHA-1,像是 git 產生 commit 編號就是,檢查檔案是否完整或被竄改除了使用 md5 也常用 SHA-1,但目前有發現破解方式已經不夠安全。因此傳送機密資料已漸漸不使用 SHA-1 ,通常會選擇 SHA-2 系列,常見的像是比特幣也使用的 SHA-256 (SHA-2 的一種,輸出長度為 256),另外還有與 SHA-1、SHA-2 運算方式不同的 SHA-3 系列。

SHA-1 演算法

以下為 SHA1 演算法的過程,使用位元的角度簡介

· One min read
m9H8

HMAC 的 H 是指 Hash-based,MAC 是指 message authentication code。

計算的輸入

計算 HMAC 需要以下輸入:

  1. key 金鑰
  2. message 訊息
  3. hash algorithm 雜湊函式 及其 blocksize

流程