Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Anwendung mit Datenbank verbinden

Sehen Sie sich Jasypt an , es ist eine Java-Bibliothek, die es dem Entwickler ermöglicht, seinen/ihren Projekten mit minimalem Aufwand grundlegende Verschlüsselungsfunktionen hinzuzufügen, ohne dass tiefgreifende Kenntnisse über die Funktionsweise von Kryptografie erforderlich sind.

Falls Sie Spring verwenden, können Sie Ihre db.properties definieren als:

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

und konfigurieren Sie es mit Jasypt und Spring als:

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

Dies würde das eigentliche Passwort verbergen (dasselbe können Sie für username tun ) von Schülern, sodass sie die Verbindungszeichenfolge nicht aus der Eigenschaftendatei ableiten könnten.

Falls Sie Spring nicht verwenden, finden Sie hier eine Jasypt-Anleitung dasselbe "manuell" zu erreichen