如何安装OTP erlang-crypto库

时间:2016-12-28 03:54:18

标签: erlang couchdb

我想从源代码构建erlang。构建之后,我尝试检查加密库如下:

$erl -env ERL_LIBS $ERL_LIBS:/path/to/couchdb/lib -couch_ini -s crypto
1> crypto:md5_init().
<<>>

我原本预计

1> crypto:md5_init().
<<1,35,69,103,137,171,205,239,254,220,186,152,118,84,50,
  16,0,0,0,0,0,0,0,0,0,0,0,0,0,...>>

在构建erlang之前,我已经安装了openssl,openssl-dev。

1 个答案:

答案 0 :(得分:2)

crypto:md5_init()返回值没有任何问题。它是表示Erlang运行时的内部数据结构的“魔术二进制”的示例。如果您按照文档使用它,它可以完美地运行:

1> C = crypto:md5_init().
<<>>
2> C2 = crypto:md5_update(C, "some data").
<<>>
3> crypto:md5_final(C2).
<<30,80,33,10,2,2,73,127,183,155,195,139,106,222,108,52>>

这个例子来自Erlang 19.如果我们回到18.3或更早,我们得到这个:

1> C = crypto:md5_init().
<<1,35,69,103,137,171,205,239,254,220,186,152,118,84,50,
  16,0,0,0,0,0,0,0,0,0,0,0,0,0,...>>
2> C2 = crypto:md5_update(C, "some data").
<<1,35,69,103,137,171,205,239,254,220,186,152,118,84,50,
  16,72,0,0,0,0,0,0,0,115,111,109,101,32,...>>
3> crypto:md5_final(C2).
<<30,80,33,10,2,2,73,127,183,155,195,139,106,222,108,52>>

请注意,这两个示例的最终MD5结果是相同的。