How to generate DDL for db_links

Is there anyway to extract ddl for all database links and perhaps find the password of the connect string?
YES

SELECT DBMS_METADATA.GET_DDL(‘DB_LINK’,db.db_link,db.owner) from dba_db_links db

Add a Where clause for a specific DDL:
where upper(db_link) like ‘%example%’;

Next, look at your TNS_ADMIN directory (or tnsnping the alias) to find what is the target.

If your DB is <= 11.2.0.2, you can crack the password of the dblink using this method: select passwordx from sys.link$ where name='example; PASSWORDX -------------------------------------------------- 05CA78F36B77C902B9286FFC981F4C9A92F8479D406ADWA670 set serveroutput on declare db_link_password varchar2(200); begin db_link_password := '05CA78F36B77C902B9286FFC981F4C9A92F8479D406ADWA670'; dbms_output.put_line ('Password: ' || utl_raw.cast_to_varchar2 ( dbms_crypto.decrypt ( substr (db_link_password, 19) , dbms_crypto.DES_CBC_PKCS5 , substr (db_link_password, 3, 16) ) ) ); end; /