Lihat Jasypt , ini adalah perpustakaan java yang memungkinkan pengembang untuk menambahkan kemampuan enkripsi dasar ke proyeknya dengan upaya minimal, dan tanpa perlu memiliki pengetahuan mendalam tentang cara kerja kriptografi.
Jika Anda menggunakan Spring, Anda dapat menentukan db.properties
sebagai:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/yourdb
jdbc.username=userName
jdbc.password=ENC(A6L729KukPEx7Ps8didIUWb01fdBRh7d)
dan konfigurasikan dengan Jasypt dan Spring sebagai:
<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>
Ini akan menyembunyikan kata sandi yang sebenarnya (Anda dapat melakukan hal yang sama untuk username
) dari siswa, sehingga mereka tidak akan dapat memperoleh string koneksi dari melihat file properti.
Jika Anda tidak menggunakan Spring, berikut adalah panduan Jasypt untuk mencapai "secara manual" yang sama