Rumah  >  Artikel  >  Java  >  Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi

Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi

PHPz
PHPzke hadapan
2023-05-22 20:50:051270semak imbas

1. Perkenalkan dependensi ke dalam projek Maven

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>

2 Pada masa yang sama, anda perlu mengkonfigurasi kata laluan dalam fail konfigurasi application.yml

kerana alat menggunakan kata laluan ini. untuk penyulitan atau penyahsulitan Oleh itu, anda mesti memastikan bahawa rentetan yang disulitkan dalam konfigurasi disulitkan dengan kata laluan yang sama, jika tidak, ia tidak akan dinyahsulit apabila projek dimulakan.

jasypt:
    encryptor:
        password: 123456

3. Anda boleh

menyulitkan maklumat asal dalam kes ujian Kaedah penggunaannya sangat mudah. Demo mudah adalah seperti berikut:

@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
public class Test {
    @Autowired
    StringEncryptor encryptor;
 
    @Test
    public void getPass() {
        #直接调用加密的方法
        String mysql = encryptor.encrypt("mysql-username|mysql-password");
    }
}

4 Akhir sekali, masukkan sahaja rentetan yang disulitkan dalam fail konfigurasi

Seperti rentetan "mysql" di atas

url: ENC(mysql==)
username: ENC(mysql==)
password: ENC(mysql=)

Beri perhatian. kepada ENC( ) ialah cara penulisan tetap, dan mysql== ialah rentetan sepadan anda yang disulitkan.

Dengan cara ini anda boleh berpura-pura menyulitkan maklumat sensitif, hahaha, kenapa saya katakan berpura-pura. Ramai orang mungkin keliru dengan isu ini kerana kata laluan yang disulitkan disimpan dalam fail konfigurasi dalam teks yang jelas dan boleh dinyahsulitkan dengan mudah oleh sesiapa sahaja.

Ya, betul. Kaedah penyulitan jenis ini hanya boleh dikatakan tidak membenarkan orang ramai melihat kata laluan akaun sekaligus.

Walaupun data disulitkan, ia tidak bermakna selepas penggodam mendapat akses kepada projek anda, kerana penyulitan hanyalah langkah keselamatan palsu. Oleh itu, ia adalah yang paling asas dan penting untuk memastikan keselamatan projek dan pelayan.

OK!OK!OK!

Sulitkan fail konfigurasi

Pelajar yang membangunkan projek semua tahu bahawa, sebagai contoh, maklumat pergantungan projek dan maklumat pangkalan data biasanya disimpan dalam fail konfigurasi , dan semuanya adalah teks biasa, jadi pemprosesan penyulitan diperlukan Hari ini saya akan memperkenalkan konfigurasi jasypt yang disepadukan dengan penyulitan springboot.

Pertama sekali, ini semua berdasarkan premis bahawa projek springboot anda boleh berjalan seperti biasa.

Langkah 1: Tambahkan kebergantungan pada fail pom, seperti yang ditunjukkan dalam rajah

Versi disediakan di sini

<dependency>
   <groupId>com.github.ulisesbocchio</groupId>
   <artifactId>jasypt-spring-boot-starter</artifactId>
   <version>2.1.0</version>
</dependency>

Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi

Langkah 2 : Jana kunci

Cari pakej jasypt jar dalam gudang maven tempatan anda, dan buka tetingkap arahan cmd dalam direktori itu, seperti yang ditunjukkan dalam rajah:

Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi

Laksanakan

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBESTringEncryptionCLI input="test" password=test algoritma=PBEWithMD5AndDES >

di mana Input ialah kata laluan teks biasa anda, di sini saya menunjukkan ujian, kata laluan ialah kunci peribadi anda, algoritma ialah peraturan, jangan ubahnya! ! ! . Seperti yang ditunjukkan dalam rajah selepas pelaksanaan:

Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi

Penjelasan ringkas, OUTPUT di sini ialah teks sifir (kata laluan) yang disulitkan. Berikut ialah kaedah untuk menyalin teks menggunakan cmd (kerana saya tidak tahu cara menyalin menggunakan cmd pada mulanya): klik kanan tetikus untuk menandakan dan pilih kandungan yang ingin anda salin, dan kemudian anda boleh menyalinnya.

Langkah 3: Tambahkan konfigurasi pada fail konfigurasi springboot, seperti yang ditunjukkan dalam rajah

Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi

Di sini saya menggunakan fail application.yml dan aplikasi. Fail properties ditulis seperti ini :jasypt.encryptor.password=test.

Tetapi apa yang sebenarnya digunakan ialah System.setProperty("jasypt.encryptor.password", "demo"); dalam kelas permulaan untuk menetapkan semula nilai antara nod ini, yang akan membantu melindungi kunci peribadi sekali lagi ( jika sesiapa mempunyai penyelesaian yang lebih baik, sila tinggalkan mesej tepat pada masanya dan mari kita bincangkannya bersama-sama)

Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi

Nota: Kata laluan pertama dalam gambar di atas sepadan dengan kata laluan dalam ARGUMENTS dalam langkah kedua , kata laluan kedua sepadan dengan hasil dalam OUTPUT dalam langkah kedua, dan borang mesti ditambah dengan ENC (kata laluan anda), seperti yang ditunjukkan dalam rajah.

Langkah 4: Nyahsulit kata laluan melalui arahan

Jalankan arahan

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli .JasyptPBESTringDecryptionCLI input="nhyL4CzSQv/aPxoe7TzpOQ==" password=test algorithm=PBEWithMD5AndDES

Hasilnya adalah seperti yang ditunjukkan di bawah:

Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi

Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi

Akhirnya integrasi springboot dan jasypt nampaknya agak mudah untuk dilaksanakan, haha. Tetapi satu perkara yang perlu diambil perhatian ialah anda tidak boleh membocorkan fail konfigurasi anda (terutama kata laluan dalam ARGUMENTS, yang bersamaan dengan kunci persendirian), jika tidak, orang lain boleh menyahsulit kata laluan anda melalui langkah keempat Adalah disyorkan untuk memasukkan fail konfigurasi Pusat Konfigurasi

Atas ialah kandungan terperinci Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam