【发布时间】:2016-07-28 16:00:39
【问题描述】:
下面是我用来解密一些之前加密的 XML 的代码 sn-p。如果没有加密(明文),那我就不用解密处理了,想原样返回。
它根本没有返回任何东西。请帮助我使它工作。
更新代码:
pop_offline_messages(Ls, LUser, LServer, odbc) ->
EUser = ejabberd_odbc:escape(LUser),
case odbc_queries:get_and_del_spool_msg_t(LServer,
EUser)
of
{atomic, {selected, [<<"username">>, <<"xml">>], Rs}} ->
Ls ++
lists:flatmap(fun ([_, XML]) ->
?INFO_MSG("decrypted message from mod_offline ~p ",[XML]),
Top = case str:str(XML, <<"message">>) of
Top >= 1 -> XML;
Top == 0 -> crypto:aes_cfb_128_decrypt(<<"abcdefghabcdefgh">>,<<"12345678abcdefgh">>,base64:decode(XML))
end,
case xml_stream:parse_element(XML) of
{error, _Reason} ->
[];
El ->
case offline_msg_to_route(LServer, El) of
error ->
[];
RouteMsg ->
[RouteMsg]
end
end
end,
Rs);
_ -> Ls
end;
【问题讨论】:
-
你能举一个应该被解密的输入数据的例子吗?
-
我在
crypto文档中没有看到这个crypto:aes_cfb_128_decrypt/3函数? erlang.org/doc/man/crypto_app.html -
str:str/2是做什么的?返回什么值?某些东西总是返回。 -
您可能只是未能将结果分配给变量吗?从末尾的
,来看,它不是函数中的最后一个表达式。 -
您需要更精确:它会卡住吗?它是否返回一个空值?它会触发错误/异常/退出吗?
标签: encryption erlang xmpp aes ejabberd