sql >> Base de Datos >  >> RDS >> Mysql

aplicación conectarse a la base de datos

Echa un vistazo a Jasypt , es una biblioteca java que permite al desarrollador agregar capacidades básicas de encriptación a sus proyectos con el mínimo esfuerzo y sin necesidad de tener un conocimiento profundo de cómo funciona la criptografía.

En caso de que use Spring, puede definir su db.properties como:

 jdbc.driver=com.mysql.jdbc.Driver
 jdbc.url=jdbc:mysql://localhost/yourdb
 jdbc.username=userName
 jdbc.password=ENC(A6L729KukPEx7Ps8didIUWb01fdBRh7d)

y configurarlo con Jasypt y Spring como:

<bean class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer">
   <constructor-arg>
     <bean class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
       <property name="config">
         <bean class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
           <property name="algorithm" value="PBEWithMD5AndDES" />
           <property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD" />
         </bean>
       </property>
     </bean>
   </constructor-arg>
   <property name="locations">
     <list>
       <value>classpath:/META-INF/props/db/db.properties</value>
     </list>
   </property>   
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

Esto ocultaría la contraseña real (puede hacer lo mismo para el username ) de los estudiantes, por lo que no podrían derivar la cadena de conexión mirando el archivo de propiedades.

En caso de que no esté usando Spring, aquí tiene una guía de Jasypt para lograr lo mismo "manualmente"