<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
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
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"); } }
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!
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.
Versi disediakan di sini
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
Cari pakej jasypt jar dalam gudang maven tempatan anda, dan buka tetingkap arahan cmd dalam direktori itu, seperti yang ditunjukkan dalam rajah:
Laksanakan
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: 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 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) 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 arahanjava -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBESTringEncryptionCLI input="test" password=test algoritma=PBEWithMD5AndDES >
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli .JasyptPBESTringDecryptionCLI input="nhyL4CzSQv/aPxoe7TzpOQ==" password=test algorithm=PBEWithMD5AndDESHasilnya adalah seperti yang ditunjukkan di bawah: 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!