anchor.diff:  auth_to_binary(User, Password, Database,
                  #handshake{maxlength=M,seed=S,caps=C,plugin=P}) ->
       A = (C bor ?CLIENT_LONG_PASSWORD) band 16#ffff, % FORCE
  -    X = scramble(Password, S, P),
  +    X = scramble(P, Password, S),
       B = if ?IS_SET(C,?CLIENT_SECURE_CONNECTION) -> N = size(X), <<N,X/binary>>;
              true                                 -> <<0>>
           end,
  
positive.code:     L = binary:split(<<Binary/binary,".0.0">>, [<<$.>>,<<$->>], [global]),
      lists:map(F, lists:sublist(L,3)).
  
  scramble(<<>>, _Seed, <<"mysql_native_password">>) ->
      <<>>;
  scramble(Password, Seed, <<"mysql_native_password">>) ->
      scramble(Password, Seed);
  scramble(Password, _Seed, <<"auth_test_plugin">>) ->
      Password;
  scramble(<<>>, _Seed, _Plugin) ->
      <<0:64>>;
  scramble(Password, Seed, _Plugin) ->
      scramble_323(Password, Seed).
  
  %% -----------------------------------------------------------------------------
  %% << sql/password.c : scramble/3, check_scramble/3
  
negative.code: 
  -spec auth_to_binary(binary(),plugin(),handshake()) -> {ok,binary()}.
  auth_to_binary(Password, #plugin{name=N}, #handshake{seed=S}) ->
      {ok, scramble(N,Password,S)}.
  
  -spec auth_to_binary(binary(),binary(),binary(),non_neg_integer(),handshake()) ->
                              {ok,binary(),handshake()}.
  