下面是我用来解密一些以前加密过的XML的代码片段。如果它没有加密(纯文本),那么我不需要解密和处理它,我想按原样返回它
它根本没有归还任何东西。请帮我把它做好。
更新代码:
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;
如果它"不返回任何内容",要么是因为您没有执行它,要么是由于您没有存储结果。我建议您将代码更改为:
Result = case str:str(XML, <<"message">>) of
1 -> XML;
_ -> crypto:aes_cfb_128_decrypt(<<"abcdefghabcdefgh">>,<<"12345678abcdefgh">>,base64:decode(XML))
end,
io:format("~p~n",[result]),
...
因为在当前的snippet版本中,没有使用案例的结果,所以一旦评估就丢失了。