亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于 Dart 中字符串編碼/解碼的困惑

關于 Dart 中字符串編碼/解碼的困惑

郎朗坤 2021-09-14 16:25:14
我正在嘗試將 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暫時解決了它_。


查看完整回答
反對 回復 2021-09-14
  • 1 回答
  • 0 關注
  • 391 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號