Decryption
我的 fernet 密鑰“過期”了怎麼辦?
6 個月前,我創建了一個機器人,它基本上將每個使用者的數據以 json 格式儲存在不同的文本文件中,並且我有一個 fernet 密鑰。我基本上已經有 2 個月沒碰它了,因為它是一個面向學生的機器人。所以事情就是這樣,開學 15 天,我有 106 個帳戶,這些帳戶使用單個 fernet 密鑰加密,我無法解碼任何文件,因為它說它已損壞。我能做些什麼?
在仔細研究了 fernet 原始碼之後,看起來一種可能性是您在加密數據上設置了 TTL。
如果您使用的是 Ruby,您可以使用配置選項禁用 TTL 檢查
config.enforce_ttl
:如果您使用的是 Go,看起來您可以將
ttl
0傳遞給VerifyAndDecrypt
:
- https://github.com/fernet/fernet-go/blob/master/fernet.go#L161
- https://github.com/fernet/fernet-go/blob/master/fernet.go#L70-L72
您也許可以使用 fernet CLI 測試這個理論,因為它似乎預設禁用 TTL 檢查(如果我正確解釋了 Ruby 程式碼)。