我想从源代码构建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。
答案 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结果是相同的。