首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于Dart中的字符串编码/解码的困惑

关于Dart中的字符串编码/解码的困惑
EN

Stack Overflow用户
提问于 2018-12-12 03:00:45
回答 1查看 443关注 0票数 0

我正在尝试将python代码转换为dart。它有两个部分。这是第一个:

代码语言:javascript
运行
复制
passw = (salt + password).encode('utf8')
ha = base64.b64encode(hashlib.sha512(passw).digest())
return ha.decode('utf8')

这是第二个:

代码语言:javascript
运行
复制
l2 = hashlib.sha512((hash_level_1 + date).encode('utf8')).digest()
return base64.urlsafe_b64encode(l2).decode('utf8')

然而,在实现python代码的第一部分时,我遇到了困难。目前,我有这样的代码:

代码语言:javascript
运行
复制
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代码的最后两行,什么被转换成了什么?我对转换系统感到困惑,也不知道该怎么做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-12 05:40:37

我已经修好了。

代码语言:javascript
运行
复制
var passw = utf8.encode(computedSalt + password);
var sha512 = pointycastle.Digest("SHA-512");
var result = base64.encode(sha512.process(passw));
return result;

代码语言:javascript
运行
复制
var result = sha512.process(utf8.encode(_key + date));
return base64.encode(result)

施展了魔法。

在第一个代码中,passw是通过utf8编码的字节格式。然后,我用sha512对其进行哈希处理,并编码成base64。dart中不需要python代码中的额外调用(ha.decode('utf8'))。

第二个代码块与第一个代码块基本相同。然而,在某些情况下,python对base64的编码似乎略有不同--它可能是urlsafe的变体。我暂时解决了这个问题,在结果中用-替换了+,用_替换了/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53730712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档