在Elixir中将bitstring转换为字符串

Ale*_*ert 4 elixir

我刚刚读完Elixir.

生成一个hmac哈希后,我得到了一个bitstring:

:crypto.hmac(:sha512, secret, data)
Sign: <<104, 155, 224, 193, 121, 129, 237, 103, 233, 236, 161, 130...>>
Run Code Online (Sandbox Code Playgroud)

现在,我必须将其转换为String,但不知道具体如何.

任何Elixir/erlang模块直接执行此操作?

The*_*sor 5

糟糕,我没有看到你最初想要使用字符串模块的bitstring输出.你已经可以!您可以通过尝试将输出传递到String.length并获得成功的返回值来查看此信息.

这本入门指南很好地介绍了基础知识.特别是"字符串是UTF-8编码的二进制文件".

您希望能够对输出做什么?

如果你想要能够通过URL传递auth系统或类似的东西,我就离开了原来的答案.


您可以使用基本模块来实现这一目标.

例如,您可以管道输出

:crypto.hmac(:sha512, secret, data) |> Base.encode64

如果你需要它是文件名或网址安全,那么有一个替代url_encode64功能.

  • 谢谢@ the-brofessor.我会将其发布到验证我的访问权限的API.刚刚使用了`Base.encode16``Base.encode16(:crypto.hmac(:sha512,secret,postdata),case :: lower)` (2认同)