下面是我用來解密之前加密的一些XML的代碼片段。如果它沒有加密(純文本),那麼我不需要解密並處理它,我想將它原樣返回。Erlang大小寫表達式不返回值
它根本沒有返回任何東西。請幫助我使它工作。
更新的代碼:
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;
你能給出一個應該解密的輸入數據的例子嗎? – legoscia
在'crypto'文檔中我沒有看到'crypto:aes_cfb_128_decrypt/3'函數? http://erlang.org/doc/man/crypto_app.html – Amiramix
'str:str/2'是做什麼用的?什麼價值被返回? **總是**返回。 – rvirding