Mysql
 sql >> Base de données >  >> RDS >> Mysql

application se connecter à la base de données

Jetez un oeil à Jasypt , il s'agit d'une bibliothèque Java qui permet au développeur d'ajouter des capacités de chiffrement de base à ses projets avec un minimum d'effort et sans avoir besoin d'avoir une connaissance approfondie du fonctionnement de la cryptographie.

Si vous utilisez Spring, vous pouvez définir votre db.properties comme :

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

et configurez-le avec Jasypt et Spring comme :

<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>

Cela masquerait le mot de passe réel (vous pouvez faire de même pour le username ) des étudiants, afin qu'ils ne puissent pas dériver la chaîne de connexion en consultant le fichier de propriétés.

Si vous n'utilisez pas Spring, voici un guide Jasypt pour obtenir le même "manuellement"