ORA-28000 means that the account that you tried to use is locked because some privileged user disabled the ability of connection. Therefore, it's an intentionally behavior, not a system mechanism.
SQL> conn hr/hr
ORA-28000: The account is locked.
Please note that, schema objects and data of the user can still be used by others, even though the account is locked. In some cases, it could be a good tactic for sharing accounts which do not need logging.
You can revert the status by unlocking the account. First of all, logging as a privileged user.
SQL> conn / as sysdba
And then we can check the status of the account.
SQL> column account_status forma a20;
SQL> select account_status, lock_date from dba_users where username = 'HR';
A simple unlocking can solve ORA-28000 by privileged users.
SQL> alter user hr account unlock;
In reality, DBA may lock some inactive accounts for a period of time before actually dropping them. Therefore, if your account is locked, please inform your DBA as soon as possible.
Please note that, some native accounts are initially locked by the database to protect them from unauthorized access. This is designed scheme.
For expired password of accounts, you shall see ORA-28001: the password has expired.