fix(dashboard): change hash from sha3_256 to sha256

old version os has no support for it
This commit is contained in:
Zaiming Shi 2021-11-20 21:16:36 +01:00
parent bab5d2f399
commit 6ca6d60858
2 changed files with 6 additions and 6 deletions

View File

@ -171,7 +171,7 @@ check(_, undefined) ->
check(Username, Password) ->
case lookup_user(Username) of
[#?ADMIN{pwdhash = <<Salt:4/binary, Hash/binary>>}] ->
case Hash =:= sha3_hash(Salt, Password) of
case Hash =:= sha256(Salt, Password) of
true -> ok;
false -> {error, <<"BAD_USERNAME_OR_PASSWORD">>}
end;
@ -206,10 +206,10 @@ destroy_token_by_username(Username, Token) ->
hash(Password) ->
SaltBin = emqx_dashboard_token:salt(),
<<SaltBin/binary, (sha3_hash(SaltBin, Password))/binary>>.
<<SaltBin/binary, (sha256(SaltBin, Password))/binary>>.
sha3_hash(SaltBin, Password) ->
crypto:hash('sha3_256', <<SaltBin/binary, Password/binary>>).
sha256(SaltBin, Password) ->
crypto:hash('sha256', <<SaltBin/binary, Password/binary>>).
add_default_user() ->
add_default_user(binenv(default_username), binenv(default_password)).

View File

@ -150,11 +150,11 @@ t_cli(_Config) ->
emqx_dashboard_cli:admins(["add", "username", "password"]),
[#?ADMIN{ username = <<"username">>, pwdhash = <<Salt:4/binary, Hash/binary>>}] =
emqx_dashboard_admin:lookup_user(<<"username">>),
?assertEqual(Hash, crypto:hash(sha3_256, <<Salt/binary, <<"password">>/binary>>)),
?assertEqual(Hash, crypto:hash(sha256, <<Salt/binary, <<"password">>/binary>>)),
emqx_dashboard_cli:admins(["passwd", "username", "newpassword"]),
[#?ADMIN{username = <<"username">>, pwdhash = <<Salt1:4/binary, Hash1/binary>>}] =
emqx_dashboard_admin:lookup_user(<<"username">>),
?assertEqual(Hash1, crypto:hash(sha3_256, <<Salt1/binary, <<"newpassword">>/binary>>)),
?assertEqual(Hash1, crypto:hash(sha256, <<Salt1/binary, <<"newpassword">>/binary>>)),
emqx_dashboard_cli:admins(["del", "username"]),
[] = emqx_dashboard_admin:lookup_user(<<"username">>),
emqx_dashboard_cli:admins(["add", "admin1", "pass1"]),