You dont know if those are duplicates are not - try this
create table xxx_test_tab(
  val varchar2(100), tno number );
  
  
insert /*+ APPEND */ into xxx_test_tab
with vals as 
 ( select 'Steve' || '~' || 'Johny' || '~' || 'Alex'||'~'|| to_char (to_char ( SYSTIMESTAMP, 'SSSSSFF9')/77777 )||'~'||dbms_random.random  v
   from dual connect by level <= 1000000
 )
select 
  v, ora_hash(v)
from vals;
commit;
select *
from 
  ( select val, count(*) over ( partition by tno ) as hash_dup
    from xxx_test_tab
  )
where hash_dup > 1;
Having said that - dont forget that hash values are exactly that ... hash values.  They are *nearly* unique, not *guaranteed* unique.
But the demo above - see how you go.