我正在嘗試將 python 代碼轉換為 dart。它有兩個部分。這是第一個:passw = (salt + password).encode('utf8')ha = base64.b64encode(hashlib.sha512(passw).digest())return ha.decode('utf8')這是第二個:l2 = hashlib.sha512((hash_level_1 + date).encode('utf8')).digest()return base64.urlsafe_b64encode(l2).decode('utf8')但是,我在實現第一部分 python 代碼時卡住了。目前,我有這個代碼:var passw = utf8.encode(computedSalt + password);var sha512 = pointycastle.Digest("SHA-512");var result = base64.encode(sha512.process(passw));_key = utf8.decode(result);但這不起作用,因為base64.encode提供字符串,并utf8.decode期望字節。如何將 python 代碼轉換為 dart?第一個python代碼的最后兩行將什么轉換為什么?我對轉換系統感到困惑,我不知道該怎么做。
1 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
我已經修好了。
var passw = utf8.encode(computedSalt + password);
var sha512 = pointycastle.Digest("SHA-512");
var result = base64.encode(sha512.process(passw));
return result;
和
var result = sha512.process(utf8.encode(_key + date));
return base64.encode(result)
魔法。
在第一個代碼中,passw是字節格式,通過 utf8 編碼。然后,我用 sha512 對其進行散列并編碼為 base64。ha.decode('utf8')在 dart 中不需要額外調用 python 代碼 ( )。
在第二個代碼塊中與第一個基本相同。然而,在某些情況下,python 似乎對 base64 編碼略有不同——它可能是 urlsafe 變體。我通過在結果中替換+by-和/by暫時解決了它_。
添加回答
舉報
0/150
提交
取消